diff --git a/.vscode/settings.json b/.vscode/settings.json index 8d6fba9..3348984 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -79,6 +79,7 @@ "qlabel": "cpp", "future": "cpp", "qcoreapplication": "cpp", - "qcategoryaxis": "cpp" + "qcategoryaxis": "cpp", + "qaction": "cpp" } } \ No newline at end of file diff --git a/mainwindow.cpp b/mainwindow.cpp index 2fb240d..c98d73c 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1,32 +1,88 @@ #include "mainwindow.h" -#include - #include "./ui_mainwindow.h" -// 两种引入命名空间方法 +void MainWindow::push_reg(QWidget *parent, int off, const char *regname, int32_t regadd, int32_t rwflag) { + DispalyRegIterm *regitem = new DispalyRegIterm(); + { + auto *label = new QLabel(parent); + label->setObjectName(QString::fromUtf8("label")); + label->setText(QString(regname)); + QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Expanding); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + sizePolicy1.setHeightForWidth(label->sizePolicy().hasHeightForWidth()); + label->setSizePolicy(sizePolicy1); + label->setMinimumSize(QSize(100, 0)); + label->setMaximumSize(QSize(16777215, 16777215)); + ui->reg_table->addWidget(label, off, 0, 1, 1); + regitem->label = label; + } + { + auto *textbrowser = new QTextBrowser(parent); + textbrowser->setObjectName(QString::fromUtf8("textbrowser")); + textbrowser->setEnabled(true); + textbrowser->setText(QString("demo")); + QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(textbrowser->sizePolicy().hasHeightForWidth()); -// using namespace QtCharts; // 使用unsing引入命名空间 -QT_CHARTS_USE_NAMESPACE // 使用内置宏引入命名空间 + textbrowser->setSizePolicy(sizePolicy); + textbrowser->setMaximumSize(QSize(16777215, 16777215)); -MainWindow::MainWindow(QWidget* parent) - : QMainWindow(parent), ui(new Ui::MainWindow) { - ui->setupUi(this); + ui->reg_table->addWidget(textbrowser, off, 1, 1, 1); + regitem->regBrowser = textbrowser; + } + + { + auto *textEdit = new QTextEdit(parent); + textEdit->setObjectName(QString::fromUtf8("textEdit")); + textEdit->setEnabled(true); + QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(textEdit->sizePolicy().hasHeightForWidth()); - QChartView* chartView = new QChartView(this); - QLineSeries* series = new QLineSeries(); + textEdit->setSizePolicy(sizePolicy); + textEdit->setMaximumSize(QSize(16777215, 16777215)); - for (quint32 i = 0; i < 100; i++) { - // 参数 x 为循环自增变量 i,参数 y 为正弦函数Y值 - series->append(i, sin(static_cast(0.6f * i))); + ui->reg_table->addWidget(textEdit, off, 2, 1, 1); + regitem->regEditer = textEdit; } + { + // new button + auto *button = new QPushButton(parent); + button->setObjectName(QString::fromUtf8("button")); + button->setText(QString("Write")); + QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(button->sizePolicy().hasHeightForWidth()); + button->setSizePolicy(sizePolicy); - // 将系列添加到图表 - chartView->chart()->addSeries(series); - // 基于已添加到图表的 series 来创建默认的坐标轴 - chartView->chart()->createDefaultAxes(); + regitem->writerButton = button; + ui->reg_table->addWidget(button, off, 3, 1, 1); + } + m_regdisplayer[regadd] = regitem; +} +void MainWindow::construct_reg_table() { // + push_reg(ui->gridLayoutWidget, 1, "reg0", 0x1000, 0); + push_reg(ui->gridLayoutWidget, 2, "reg1", 0x1001, 0); + push_reg(ui->gridLayoutWidget, 3, "reg1", 0x1002, 0); + push_reg(ui->gridLayoutWidget, 4, "reg1", 0x1003, 0); + push_reg(ui->gridLayoutWidget, 5, "reg1", 0x1004, 0); + auto qrect = ui->gridLayoutWidget->geometry(); + qrect.setHeight(31 * 5); + ui->gridLayoutWidget->setGeometry(qrect); +} +// +MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { + ui->setupUi(this); + // 构造传感器列表 + construct_reg_table(); } MainWindow::~MainWindow() { delete ui; } diff --git a/mainwindow.h b/mainwindow.h index 4643e32..1db9119 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -2,20 +2,49 @@ #define MAINWINDOW_H #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include QT_BEGIN_NAMESPACE -namespace Ui { class MainWindow; } +namespace Ui { +class MainWindow; +} QT_END_NAMESPACE -class MainWindow : public QMainWindow -{ - Q_OBJECT +class DispalyRegIterm { + public: + QLabel *label = 0; + QTextBrowser *regBrowser = 0; + QTextEdit *regEditer = 0; + QPushButton *writerButton = 0; +}; + +class MainWindow : public QMainWindow { + Q_OBJECT + + private: + std::map m_regdisplayer; + + public: + MainWindow(QWidget *parent = nullptr); + ~MainWindow(); -public: - MainWindow(QWidget *parent = nullptr); - ~MainWindow(); + private: + Ui::MainWindow *ui; -private: - Ui::MainWindow *ui; + void construct_reg_table(); + void push_reg(QWidget *parent, int off, const char *regname, int32_t regadd, int32_t rwflag); }; -#endif // MAINWINDOW_H +#endif // MAINWINDOW_H diff --git a/mainwindow.ui b/mainwindow.ui index 7312570..f230311 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -14,66 +14,38 @@ MainWindow - + - 130 - 50 - 621 - 381 + 110 + 40 + 431 + 61 - - 1 - - - - Tab 1 - - - - - 10 - 20 - 91 - 41 - - - - PushButton - - - - - - Tab 2 - - - - - 360 - 210 - 131 - 71 - - - - PushButton - - - + - + - 30 - 70 + 10 + 40 91 31 - PushButton + 刷新寄存器 + + + + + + 560 + 40 + 461 + 351 + diff --git a/src/main.cpp b/src/main.cpp index 0b6805c..0ded964 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -28,10 +28,7 @@ QT_CHARTS_USE_NAMESPACE int main(int argc, char *argv[]) { QApplication a(argc, argv); ZLOGI(TAG, "hello world"); - QMainWindow window; - - window.resize(800, 600); - window.show(); - + MainWindow w; + w.show(); return a.exec(); }