Browse Source

update

master
zhaohe 1 year ago
parent
commit
f5d8db17e9
  1. 3
      .vscode/settings.json
  2. 3
      CMakeLists.txt
  3. 62
      libzqt/zui/z_function_list_box.cpp
  4. 67
      libzqt/zui/z_function_list_box.hpp
  5. 0
      libzqt/zui/z_reg_table_list_box.cpp
  6. 0
      libzqt/zui/z_reg_table_list_box.hpp
  7. 16
      libzqt/zui/zq_vtab_page.cpp
  8. 50
      libzqt/zui/zq_vtab_page.hpp
  9. 27
      mainwindow.ui

3
.vscode/settings.json

@ -91,7 +91,8 @@
"qtconcurrent": "cpp", "qtconcurrent": "cpp",
"qcombobox": "cpp", "qcombobox": "cpp",
"qvariant": "cpp", "qvariant": "cpp",
"qlineedit": "cpp"
"qlineedit": "cpp",
"qhboxlayout": "cpp"
}, },
"files.autoGuessEncoding": false, "files.autoGuessEncoding": false,
} }

3
CMakeLists.txt

@ -35,6 +35,9 @@ set(PROJECT_SOURCES
iflytop_canbus/iflytop_canbus_master.cpp iflytop_canbus/iflytop_canbus_master.cpp
iflytop_canbus/waveshare_can.cpp iflytop_canbus/waveshare_can.cpp
libzqt/zui/z_function_list_box.cpp
libzqt/zui/zq_vtab_page.cpp
) )

62
libzqt/zui/z_function_list_box.cpp

@ -0,0 +1,62 @@
#include "z_function_list_box.hpp"
using namespace iflytop;
using namespace std;
ZQFunctionListBox::ZQFunctionListBox(QWidget *parent, const QString &title, int column) : QGroupBox(parent) { //
// Box init
this->setTitle(title);
QGridLayout *layout = new QGridLayout(this);
this->setLayout(layout);
m_layout = layout;
// m_layout->setColumnMinimumWidth(column, 0);
m_column = column;
// add QSpacer
QSpacerItem *verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
// m_itermNum++;
m_layout->addItem(verticalSpacer, 0, 0,1,1);
}
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();
QSizePolicy sizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
sizePolicy.setHorizontalStretch(1);
sizePolicy.setVerticalStretch(0);
QPushButton *button = new QPushButton(this);
button->setText(zh_name);
button->setMinimumHeight(30);
button->setSizePolicy(sizePolicy);
m_layout->addWidget(button, rowcnt, 0,1,1);
QList<QLineEdit *> lineEdits;
for (int i = 0; i < params.size(); i++) {
QLineEdit *lineEdit = new QLineEdit(this);
lineEdit->setMinimumHeight(30);
lineEdit->setSizePolicy(sizePolicy);
lineEdit->setPlaceholderText(params[i]);
lineEdits.push_back(lineEdit);
m_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) {
if (m_onException) {
m_onException(e);
}
}
});
}

67
libzqt/zui/z_function_list_box.hpp

@ -0,0 +1,67 @@
#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"
namespace iflytop {
using namespace std;
/**
* @brief
*
* +TAB---------------------------------+
* |---BOX---------------------------|
* | |Button|Param|Param| |
* | |Button|Param|Param| |
* | |Button|Param|Param| |
* |---------------------------------|
*
*/
class ZQFunctionListBox : public QGroupBox {
Q_OBJECT
public:
function<void(const zexception &e)> m_onException;
private:
QGridLayout *m_layout = nullptr;
int m_itermNum = 0;
int m_column = 1;
public:
ZQFunctionListBox(QWidget *parent, const QString &title, int column);
void regOnException(function<void(const zexception &e)> onException);
void newFunc(QString zh_name, QStringList params, std::function<void(int argn, const char **args)> onButtonClick);
};
} // namespace iflytop

0
libzqt/zui/z_reg_table_list_box.cpp

0
libzqt/zui/z_reg_table_list_box.hpp

16
libzqt/zui/zq_vtab_page.cpp

@ -0,0 +1,16 @@
#include "zq_vtab_page.hpp"
using namespace iflytop;
using namespace std;
ZQVTabPage::ZQVTabPage(QTabWidget *fathertab, const QString &zh_name) : QWidget(fathertab) { //
QVBoxLayout *verticalLayout = new QVBoxLayout(this); // 设置布局
this->setLayout(verticalLayout);
m_layout = verticalLayout;
fathertab->insertTab(fathertab->count(), this, zh_name);
}
void ZQVTabPage::addBox(QGroupBox *box) {
m_layout->addWidget(box);
}

50
libzqt/zui/zq_vtab_page.hpp

@ -0,0 +1,50 @@
#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"
namespace iflytop {
using namespace std;
class ZQVTabPage : public QWidget {
Q_OBJECT
public:
private:
QVBoxLayout *m_layout;
int m_itermNum = 0;
public:
ZQVTabPage(QTabWidget *fathertab, const QString &zh_name);
void addBox(QGroupBox *box);
};
} // namespace iflytop

27
mainwindow.ui

@ -711,7 +711,7 @@ QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item row="0" column="1">
<widget class="QTextBrowser" name="PublicState_DeviceID">
<widget class="QTextEdit" name="PublicState_DeviceID">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>1</horstretch> <horstretch>1</horstretch>
@ -937,9 +937,6 @@ p, li { white-space: pre-wrap; }
<string>波形串口设置</string> <string>波形串口设置</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_6"> <layout class="QGridLayout" name="gridLayout_6">
<item row="0" column="1">
<widget class="QComboBox" name="waveSerialPortCB"/>
</item>
<item row="3" column="0" colspan="2"> <item row="3" column="0" colspan="2">
<widget class="QPushButton" name="waveSerialOpenKey"> <widget class="QPushButton" name="waveSerialOpenKey">
<property name="text"> <property name="text">
@ -947,9 +944,6 @@ p, li { white-space: pre-wrap; }
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1">
<widget class="QComboBox" name="waveSerialBaudrateCB"/>
</item>
<item row="1" column="0"> <item row="1" column="0">
<widget class="QLabel" name="serialBaudrateLable_2"> <widget class="QLabel" name="serialBaudrateLable_2">
<property name="text"> <property name="text">
@ -957,6 +951,9 @@ p, li { white-space: pre-wrap; }
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1">
<widget class="QComboBox" name="waveSerialPortCB"/>
</item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="serialPortLable_2"> <widget class="QLabel" name="serialPortLable_2">
<property name="text"> <property name="text">
@ -964,6 +961,9 @@ p, li { white-space: pre-wrap; }
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1">
<widget class="QComboBox" name="waveSerialBaudrateCB"/>
</item>
<item row="2" column="0" colspan="2"> <item row="2" column="0" colspan="2">
<widget class="QPushButton" name="waveSerialPortRefreshKey"> <widget class="QPushButton" name="waveSerialPortRefreshKey">
<property name="text"> <property name="text">
@ -971,6 +971,19 @@ p, li { white-space: pre-wrap; }
</property> </property>
</widget> </widget>
</item> </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> </layout>
</widget> </widget>
</widget> </widget>

Loading…
Cancel
Save