Browse Source

update

master
zhaohe 1 year ago
parent
commit
07c208955e
  1. 4
      .vscode/settings.json
  2. 2
      CMakeLists.txt
  3. 11
      libzqt/zui/z_function_list_box.cpp
  4. 69
      libzqt/zui/z_reg_table_list_box.cpp
  5. 120
      libzqt/zui/z_reg_table_list_box.hpp
  6. 7
      libzqt/zui/zq_vtab_page.cpp
  7. 4
      libzqt/zui/zq_vtab_page.hpp
  8. 5
      libzqt/zui/zui.hpp
  9. 30
      mainwindow.cpp
  10. 46
      mainwindow.ui
  11. 1
      src/main.cpp

4
.vscode/settings.json

@ -92,7 +92,9 @@
"qcombobox": "cpp",
"qvariant": "cpp",
"qlineedit": "cpp",
"qhboxlayout": "cpp"
"qhboxlayout": "cpp",
"qformlayout": "cpp",
"qtextbrowser": "cpp"
},
"files.autoGuessEncoding": false,
}

2
CMakeLists.txt

@ -38,6 +38,8 @@ set(PROJECT_SOURCES
libzqt/zui/z_function_list_box.cpp
libzqt/zui/zq_vtab_page.cpp
libzqt/zui/z_reg_table_list_box.cpp
)

11
libzqt/zui/z_function_list_box.cpp

@ -4,8 +4,6 @@ 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);
@ -15,13 +13,14 @@ ZQFunctionListBox::ZQFunctionListBox(QWidget *parent, const QString &title, int
m_column = column;
// add QSpacer
QSpacerItem *verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
QSpacerItem *verticalSpacer = new QSpacerItem(20, 100, QSizePolicy::Minimum, QSizePolicy::Expanding);
m_verticalSpacer = verticalSpacer;
// m_itermNum++;
// add Spacer
m_layout->addItem(m_verticalSpacer, 0, 0, 1, 1);
// m_layout->removeItem(m_verticalSpacer);
tablayout->addWidget(this);
// add Box To Tab
parent->layout()->addWidget(this);
}
void ZQFunctionListBox::regOnException(function<void(const zexception &e)> onException) { m_onException = onException; }

69
libzqt/zui/z_reg_table_list_box.cpp

@ -0,0 +1,69 @@
#include "z_reg_table_list_box.hpp"
using namespace iflytop;
using namespace std;
/***********************************************************************************************************************
* ZRegItem *
***********************************************************************************************************************/
ZRegItem::ZRegItem(QWidget *parent, QString &title, int addr, ZRegItem::reg_flag_t flag) : QFrame(parent) {
m_layout = new QHBoxLayout(parent);
this->setLayout(m_layout);
m_layout->setMargin(0);
// m_layout->setSpacing(0);
m_horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
m_lable = new QLabel(title, this);
m_val = new QLineEdit(this);
m_writeButton = new QPushButton("", this);
m_readButton = new QPushButton("", this);
// m_lable->setAlignment(Qt::AlignRight);
m_lable->setMinimumSize(50, 30);
m_val->setMinimumSize(100, 30);
m_writeButton->setMinimumSize(100, 30);
m_readButton->setMinimumSize(100, 30);
m_layout->addWidget(m_lable);
m_layout->addWidget(m_val);
m_layout->addItem(m_horizontalSpacer);
m_layout->addWidget(m_readButton);
m_layout->addWidget(m_writeButton);
}
/***********************************************************************************************************************
* ZRegTableList *
***********************************************************************************************************************/
ZRegTableList::ZRegTableList(QWidget *parent, const QString &title) : QGroupBox(title) {
// fatherLayout
m_layout = new QVBoxLayout(this);
this->setLayout(m_layout);
parent->layout()->addWidget(this);
// add FunctionList to
m_funcBox = new ZQFunctionListBox(this, "", 4);
m_funcBox->newFunc("读全部", {}, [this](int argn, const char **args) {
for (auto &item : m_regMap) {
}
});
m_layout->addWidget(m_funcBox);
// add box to parent
m_regBox = new QGroupBox("寄存器列表", this);
m_regBoxLayout = new QVBoxLayout(this);
m_regBox->setLayout(m_regBoxLayout);
m_layout->addWidget(m_regBox);
}
void ZRegTableList::regOnException(function<void(const zexception &e)> onException) {}
void ZRegTableList::addReg(QString title, int addr, ZRegItem::reg_flag_t flag) {
ZRegItem *item = new ZRegItem(this, title, addr, flag);
m_regBoxLayout->addWidget(item);
m_regMap[title] = item;
}
void ZRegTableList::addSpacer() {
m_layout->addItem(new QSpacerItem(20, 100, QSizePolicy::Minimum, QSizePolicy::Expanding));
m_regBoxLayout->addItem(new QSpacerItem(20, 100, QSizePolicy::Minimum, QSizePolicy::Expanding));
}

120
libzqt/zui/z_reg_table_list_box.hpp

@ -0,0 +1,120 @@
#pragma once
#include <QDateTime>
#include <QMainWindow>
#include <QMessageBox>
#include <QObject>
#include <QtConcurrent>
#include <QtCore/QVariant>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QFormLayout>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenu>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QTabWidget>
#include <QtWidgets/QTextBrowser>
#include <QtWidgets/QTextEdit>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
//
#include <functional>
#include "../zexception.hpp"
#include "z_function_list_box.hpp"
namespace iflytop {
using namespace std;
/**
* @brief
*
* +TAB---------------------------------+
* |---BOX---------------------------|
* | |
* | |Lable|Val| | |
* | |Lable|Val| | |
* | |Lable|Val| | |
* | |Lable|Val| | |
* | |Lable|Val| | |
* | |Lable|Val| | |
* |---------------------------------|
*
*/
class ZRegItem : public QFrame {
Q_OBJECT
public:
typedef enum {
kr = 1 << 0,
kw = 1 << 1,
krw = kr | kw,
khex = 1 << 2,
kdec = 1 << 3,
kfloat = 1 << 4,
kstr = 1 << 5,
kbinary = 1 << 6,
} reg_flag_t;
private:
QHBoxLayout *m_layout = nullptr;
QLabel *m_lable;
QLineEdit *m_val;
QPushButton *m_writeButton;
QPushButton *m_readButton;
QSpacerItem *m_horizontalSpacer;
QString m_title;
int m_addr;
reg_flag_t m_flag;
public:
ZRegItem(QWidget *parent, QString &title, int addr, ZRegItem::reg_flag_t flag);
};
class ZRegTableList : public QGroupBox {
Q_OBJECT
public:
function<void(const zexception &e)> m_onException;
private:
/**
* @brief layout
*
* VBoxLayout
* FunctonListBox
* Button,param,param
* Button,param,param
* RegBox
* Lable Val Spacer Button0 Button1
*
*/
QVBoxLayout *m_layout = nullptr;
ZQFunctionListBox *m_funcBox;
QGroupBox *m_regBox = nullptr;
QVBoxLayout *m_regBoxLayout = nullptr;
QMap<QString, ZRegItem *> m_regMap;
public:
ZRegTableList(QWidget *parent, const QString &title);
void regOnException(function<void(const zexception &e)> onException);
void addReg(QString title, int addr, ZRegItem::reg_flag_t flag);
void addSpacer();
};
} // namespace iflytop

7
libzqt/zui/zq_vtab_page.cpp

@ -13,4 +13,9 @@ ZQVTabPage::ZQVTabPage(QTabWidget *fathertab, const QString &zh_name) : QWidget(
}
void ZQVTabPage::addBox(QGroupBox *box) {
m_layout->addWidget(box);
}
}
void ZQVTabPage::addSpacer() {
m_verticalSpacer = new QSpacerItem(20, 1000, QSizePolicy::Minimum, QSizePolicy::Expanding);
m_layout->addItem(m_verticalSpacer);
}

4
libzqt/zui/zq_vtab_page.hpp

@ -33,7 +33,6 @@
#include "../zexception.hpp"
namespace iflytop {
using namespace std;
class ZQVTabPage : public QWidget {
@ -43,8 +42,11 @@ class ZQVTabPage : public QWidget {
QVBoxLayout *m_layout;
int m_itermNum = 0;
QSpacerItem *m_verticalSpacer = nullptr;
public:
ZQVTabPage(QTabWidget *fathertab, const QString &zh_name);
void addBox(QGroupBox *box);
void addSpacer();
};
} // namespace iflytop

5
libzqt/zui/zui.hpp

@ -0,0 +1,5 @@
#pragma once
#include "z_function_list_box.hpp"
#include "zq_vtab_page.hpp"
#include "z_reg_table_list_box.hpp"

30
mainwindow.cpp

@ -15,6 +15,9 @@
#include "zexception.hpp"
#include "zui/z_function_list_box.hpp"
#include "zui/zq_vtab_page.hpp"
//
#include "zui/zui.hpp"
using namespace std;
using namespace iflytop;
using namespace zcr;
@ -331,10 +334,37 @@ void MainWindow::processException(const zexception &e) { //
void MainWindow::constructAppUI() {
{
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);
});
box->newFunc("扫描模块", {"deviceId"}, [](int argn, const char **args) { //
IflytopCanbusMaster::ins()->callcmd(atoi(args[0]), kmodule_ping);
});
box->newFunc("扫描模块", {"deviceId"}, [](int argn, const char **args) { //
IflytopCanbusMaster::ins()->callcmd(atoi(args[0]), kmodule_ping);
});
ZQFunctionListBox *box2 = new ZQFunctionListBox(tab, "模块基础操作", 4);
box2->regOnException([this](const zexception &e) { processException(e); });
box2->newFunc("扫描模块", {"deviceId"}, [](int argn, const char **args) { //
IflytopCanbusMaster::ins()->callcmd(atoi(args[0]), kmodule_ping);
});
tab->addSpacer();
}
{
ZQVTabPage *tab = new ZQVTabPage(ui->buttonTabWidget, "寄存器操作");
ZRegTableList *tableBox = new ZRegTableList(tab, "寄存器操作");
tableBox->addReg("123", 1, ZRegItem::krw);
tableBox->addReg("234", 1, ZRegItem::krw);
tableBox->addReg("345", 1, ZRegItem::krw);
tableBox->addSpacer();
tab->addSpacer();
}
}

46
mainwindow.ui

@ -937,12 +937,24 @@ p, li { white-space: pre-wrap; }
<string>波形串口设置</string>
</property>
<layout class="QGridLayout" name="gridLayout_6">
<item row="3" column="0" colspan="2">
<widget class="QPushButton" name="waveSerialOpenKey">
<property name="text">
<string>打开</string>
<item row="0" column="1">
<widget class="QComboBox" name="waveSerialPortCB"/>
</item>
<item row="4" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="waveSerialBaudrateCB"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="serialBaudrateLable_2">
@ -951,8 +963,12 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="waveSerialPortCB"/>
<item row="3" column="0" colspan="2">
<widget class="QPushButton" name="waveSerialOpenKey">
<property name="text">
<string>打开</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="serialPortLable_2">
@ -961,9 +977,6 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="waveSerialBaudrateCB"/>
</item>
<item row="2" column="0" colspan="2">
<widget class="QPushButton" name="waveSerialPortRefreshKey">
<property name="text">
@ -971,19 +984,6 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item row="4" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>

1
src/main.cpp

@ -37,7 +37,6 @@ int main(int argc, char *argv[]) {
QApplication a(argc, argv);
MainWindow w;
w.show();
ZLOGI(TAG, "camera_light_src_timing_controller");
ZLOGI(TAG, "maufacturer : %s", MAUFACTURER);
ZLOGI(TAG, "version : %d.0.0", VERSION);

Loading…
Cancel
Save