|
|
@ -13,6 +13,8 @@ |
|
|
|
#include "logger.hpp"
|
|
|
|
#include "qt_serial_datachannel.hpp"
|
|
|
|
#include "zexception.hpp"
|
|
|
|
#include "zui/z_function_list_box.hpp"
|
|
|
|
#include "zui/zq_vtab_page.hpp"
|
|
|
|
using namespace std; |
|
|
|
using namespace iflytop; |
|
|
|
using namespace zcr; |
|
|
@ -21,11 +23,9 @@ typedef enum { |
|
|
|
kthree_lead_ecg, |
|
|
|
} device_type_t; |
|
|
|
|
|
|
|
static MainWindow *m_mainWindow; |
|
|
|
static QTDataChannel G_QTDataChannel; |
|
|
|
static QTDataChannel G_WaveDataChannel; |
|
|
|
|
|
|
|
|
|
|
|
static MainWindow *m_mainWindow; |
|
|
|
static QTDataChannel G_QTDataChannel; |
|
|
|
static QTDataChannel G_WaveDataChannel; |
|
|
|
|
|
|
|
QT_REQUIRE_CONFIG(groupbox); |
|
|
|
|
|
|
@ -286,105 +286,6 @@ void MainWindow::constructBaseUI() { |
|
|
|
|
|
|
|
void MainWindow::displayInfo(bool suc, QString info) {} |
|
|
|
|
|
|
|
/***********************************************************************************************************************
|
|
|
|
* 页面构造工具 * |
|
|
|
***********************************************************************************************************************/ |
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief 构造样式如下 |
|
|
|
* |
|
|
|
* +TAB---------------------------------+ |
|
|
|
* |---BOX---------------------------| |
|
|
|
* | |Button|Param|Param| | |
|
|
|
* | |Button|Param|Param| | |
|
|
|
* | |Button|Param|Param| | |
|
|
|
* |---------------------------------| |
|
|
|
* |---BOX---------------------------| |
|
|
|
* | |Button|Param|Param| | |
|
|
|
* | |Button|Param|Param| | |
|
|
|
* | |Button|Param|Param| | |
|
|
|
* |---------------------------------| |
|
|
|
* |
|
|
|
* |
|
|
|
*/ |
|
|
|
QWidget *MainWindow::allocNewTab(QString zh_name) { |
|
|
|
QWidget *newtab = new QWidget(); |
|
|
|
QVBoxLayout *verticalLayout = new QVBoxLayout(newtab); // 设置布局
|
|
|
|
newtab->setLayout(verticalLayout); |
|
|
|
|
|
|
|
// 添加Tab
|
|
|
|
ui->buttonTabWidget->insertTab(0,newtab, QString()); |
|
|
|
ui->buttonTabWidget->setTabText(ui->buttonTabWidget->indexOf(newtab), zh_name); |
|
|
|
return newtab; |
|
|
|
} |
|
|
|
|
|
|
|
void MainWindow::endAllocNewTab(QWidget *tab) { |
|
|
|
QVBoxLayout *layout = qobject_cast<QVBoxLayout *>(tab->layout()); |
|
|
|
layout->addItem(new QSpacerItem(20, 445, QSizePolicy::Minimum, QSizePolicy::Expanding)); |
|
|
|
} |
|
|
|
|
|
|
|
QGroupBox *MainWindow::allocNewBox(QWidget *tab, QString zh_name, int column) { |
|
|
|
QVBoxLayout *tablayout = qobject_cast<QVBoxLayout *>(tab->layout()); |
|
|
|
|
|
|
|
QGroupBox *groupBox = new QGroupBox(tab); // 创建BOX
|
|
|
|
QGridLayout *gridLayout = new QGridLayout(groupBox); // 创建布局
|
|
|
|
groupBox->setLayout(gridLayout); // 设置布局
|
|
|
|
gridLayout->setColumnMinimumWidth(column, column); |
|
|
|
|
|
|
|
tablayout->addWidget(groupBox); |
|
|
|
return groupBox; |
|
|
|
} |
|
|
|
|
|
|
|
void MainWindow::endAllocNewBox(QGroupBox *box) { //
|
|
|
|
QGridLayout *layout = qobject_cast<QGridLayout *>(box->layout()); |
|
|
|
QSpacerItem *verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); |
|
|
|
layout->addItem(verticalSpacer, layout->rowCount(), 0, 1, 1); |
|
|
|
} |
|
|
|
|
|
|
|
void MainWindow::addNewButtonStyle1(QWidget *box, QString zh_name, QStringList params, std::function<void(int argn, const char **args)> onButtonClick) { //
|
|
|
|
|
|
|
|
QGridLayout *layout = qobject_cast<QGridLayout *>(box->layout()); |
|
|
|
int rowcnt = layout->rowCount(); |
|
|
|
|
|
|
|
QSizePolicy sizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); |
|
|
|
sizePolicy.setHorizontalStretch(1); |
|
|
|
sizePolicy.setVerticalStretch(0); |
|
|
|
|
|
|
|
QPushButton *button = new QPushButton(box); |
|
|
|
button->setText(zh_name); |
|
|
|
button->setMinimumHeight(30); |
|
|
|
button->setSizePolicy(sizePolicy); |
|
|
|
layout->addWidget(button, rowcnt, 0, 1, 1); |
|
|
|
|
|
|
|
QList<QLineEdit *> lineEdits; |
|
|
|
|
|
|
|
for (int i = 0; i < params.size(); i++) { |
|
|
|
QLineEdit *lineEdit = new QLineEdit(box); |
|
|
|
lineEdit->setMinimumHeight(30); |
|
|
|
// lineEdit->sizePolicy().setHorizontalStretch(1);
|
|
|
|
lineEdit->setSizePolicy(sizePolicy); |
|
|
|
lineEdit->setPlaceholderText(params[i]); |
|
|
|
lineEdits.push_back(lineEdit); |
|
|
|
layout->addWidget(lineEdit, rowcnt, i + 1, 1, 1); |
|
|
|
} |
|
|
|
|
|
|
|
connect(button, &QPushButton::clicked, this, [onButtonClick, lineEdits, this]() { |
|
|
|
vector<string> params; |
|
|
|
for (int i = 0; i < lineEdits.size(); i++) { |
|
|
|
params.push_back(lineEdits[i]->text().toStdString()); |
|
|
|
} |
|
|
|
char *args[params.size()]; |
|
|
|
for (int i = 0; i < params.size(); i++) { |
|
|
|
args[i] = (char *)params[i].c_str(); |
|
|
|
} |
|
|
|
try { |
|
|
|
onButtonClick(params.size(), (const char **)args); |
|
|
|
} catch (const std::zexception &e) { |
|
|
|
processException(e); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { |
|
|
|
/**
|
|
|
|
* @brief QT初始化 |
|
|
@ -429,18 +330,11 @@ void MainWindow::processException(const zexception &e) { // |
|
|
|
|
|
|
|
void MainWindow::constructAppUI() { |
|
|
|
{ |
|
|
|
QWidget *tab = allocNewTab("模块操作"); |
|
|
|
{ |
|
|
|
QGroupBox *box = allocNewBox(tab, "模块基础操作", 4); |
|
|
|
addNewButtonStyle1(box, "扫描模块", {"deviceId"}, [](int argn, const char **args) { //
|
|
|
|
IflytopCanbusMaster::ins()->callcmd(atoi(args[0]), kmodule_ping); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
endAllocNewBox(box); |
|
|
|
} |
|
|
|
endAllocNewTab(tab); |
|
|
|
ZQVTabPage *tab = new ZQVTabPage(ui->buttonTabWidget, "模块操作"); |
|
|
|
ZQFunctionListBox *box = new ZQFunctionListBox(tab, "模块基础操作", 4); |
|
|
|
box->regOnException([this](const zexception &e) { processException(e); }); |
|
|
|
box->newFunc("扫描模块", {"deviceId"}, [](int argn, const char **args) { //
|
|
|
|
IflytopCanbusMaster::ins()->callcmd(atoi(args[0]), kmodule_ping); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |