Browse Source

update

master
zhaohe 1 year ago
parent
commit
e88253fb70
  1. 21
      libzqt/zui/z_function_list_box.cpp
  2. 2
      libzqt/zui/z_function_list_box.hpp
  3. 128
      mainwindow.cpp

21
libzqt/zui/z_function_list_box.cpp

@ -4,23 +4,32 @@ using namespace iflytop;
using namespace std;
ZQFunctionListBox::ZQFunctionListBox(QWidget *parent, const QString &title, int column) : QGroupBox(parent) { //
QVBoxLayout *tablayout = qobject_cast<QVBoxLayout *>(parent->layout());
// Box init
this->setTitle(title);
QGridLayout *layout = new QGridLayout(this);
this->setLayout(layout);
m_layout = layout;
// m_layout->setColumnMinimumWidth(column, 0);
m_layout->setColumnMinimumWidth(column, column);
m_column = column;
// add QSpacer
QSpacerItem *verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
m_verticalSpacer = verticalSpacer;
// m_itermNum++;
m_layout->addItem(verticalSpacer, 0, 0,1,1);
m_layout->addItem(m_verticalSpacer, 0, 0, 1, 1);
// m_layout->removeItem(m_verticalSpacer);
tablayout->addWidget(this);
}
void ZQFunctionListBox::regOnException(function<void(const zexception &e)> onException) { m_onException = onException; }
void ZQFunctionListBox::newFunc(QString zh_name, QStringList params, std::function<void(int argn, const char **args)> onButtonClick) {
int rowcnt = m_layout->rowCount();
m_layout->removeItem(m_verticalSpacer);
int rowcnt = m_layout->rowCount();
QSizePolicy sizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
sizePolicy.setHorizontalStretch(1);
sizePolicy.setVerticalStretch(0);
@ -29,7 +38,7 @@ void ZQFunctionListBox::newFunc(QString zh_name, QStringList params, std::functi
button->setText(zh_name);
button->setMinimumHeight(30);
button->setSizePolicy(sizePolicy);
m_layout->addWidget(button, rowcnt, 0,1,1);
m_layout->addWidget(button, rowcnt, 0, 1, 1);
QList<QLineEdit *> lineEdits;
@ -39,7 +48,7 @@ void ZQFunctionListBox::newFunc(QString zh_name, QStringList params, std::functi
lineEdit->setSizePolicy(sizePolicy);
lineEdit->setPlaceholderText(params[i]);
lineEdits.push_back(lineEdit);
m_layout->addWidget(lineEdit, rowcnt, i + 1,1,1);
m_layout->addWidget(lineEdit, rowcnt, i + 1, 1, 1);
}
connect(button, &QPushButton::clicked, this, [onButtonClick, lineEdits, this]() {
@ -59,4 +68,6 @@ void ZQFunctionListBox::newFunc(QString zh_name, QStringList params, std::functi
}
}
});
m_layout->addItem(m_verticalSpacer, rowcnt + 1, 0, 1, 1);
}

2
libzqt/zui/z_function_list_box.hpp

@ -58,6 +58,8 @@ class ZQFunctionListBox : public QGroupBox {
int m_itermNum = 0;
int m_column = 1;
QSpacerItem *m_verticalSpacer;
public:
ZQFunctionListBox(QWidget *parent, const QString &title, int column);

128
mainwindow.cpp

@ -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);
});
}
}
Loading…
Cancel
Save