Browse Source

update

master
zhaohe 2 years ago
parent
commit
c5b93c6858
  1. 3
      .vscode/settings.json
  2. 90
      mainwindow.cpp
  3. 35
      mainwindow.h
  4. 60
      mainwindow.ui
  5. 7
      src/main.cpp

3
.vscode/settings.json

@ -79,6 +79,7 @@
"qlabel": "cpp", "qlabel": "cpp",
"future": "cpp", "future": "cpp",
"qcoreapplication": "cpp", "qcoreapplication": "cpp",
"qcategoryaxis": "cpp"
"qcategoryaxis": "cpp",
"qaction": "cpp"
} }
} }

90
mainwindow.cpp

@ -1,32 +1,88 @@
#include "mainwindow.h" #include "mainwindow.h"
#include <QtCharts>
#include "./ui_mainwindow.h" #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<double>(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; } MainWindow::~MainWindow() { delete ui; }

35
mainwindow.h

@ -2,20 +2,49 @@
#define MAINWINDOW_H #define MAINWINDOW_H
#include <QMainWindow> #include <QMainWindow>
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenu>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QTextBrowser>
#include <QtWidgets/QTextEdit>
#include <QtWidgets/QWidget>
#include <map>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
class DispalyRegIterm {
public:
QLabel *label = 0;
QTextBrowser *regBrowser = 0;
QTextEdit *regEditer = 0;
QPushButton *writerButton = 0;
};
class MainWindow : public QMainWindow {
Q_OBJECT Q_OBJECT
private:
std::map<int32_t, DispalyRegIterm *> m_regdisplayer;
public: public:
MainWindow(QWidget *parent = nullptr); MainWindow(QWidget *parent = nullptr);
~MainWindow(); ~MainWindow();
private: private:
Ui::MainWindow *ui; 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

60
mainwindow.ui

@ -14,67 +14,39 @@
<string>MainWindow</string> <string>MainWindow</string>
</property> </property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<widget class="QTabWidget" name="tabWidget">
<widget class="QWidget" name="gridLayoutWidget">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>130</x>
<y>50</y>
<width>621</width>
<height>381</height>
<x>110</x>
<y>40</y>
<width>431</width>
<height>61</height>
</rect> </rect>
</property> </property>
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="main">
<attribute name="title">
<string>Tab 1</string>
</attribute>
<widget class="QPushButton" name="pushButton_2">
<layout class="QGridLayout" name="reg_table"/>
</widget>
<widget class="QPushButton" name="refresh_regs_button">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>10</x> <x>10</x>
<y>20</y>
<y>40</y>
<width>91</width> <width>91</width>
<height>41</height>
</rect>
</property>
<property name="text">
<string>PushButton</string>
</property>
</widget>
</widget>
<widget class="QWidget" name="reg">
<attribute name="title">
<string>Tab 2</string>
</attribute>
<widget class="QPushButton" name="pushButton_3">
<property name="geometry">
<rect>
<x>360</x>
<y>210</y>
<width>131</width>
<height>71</height>
<height>31</height>
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>PushButton</string>
<string>刷新寄存器</string>
</property> </property>
</widget> </widget>
</widget>
</widget>
<widget class="QPushButton" name="pushButton">
<widget class="QTextBrowser" name="logbrowser">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>30</x>
<y>70</y>
<width>91</width>
<height>31</height>
<x>560</x>
<y>40</y>
<width>461</width>
<height>351</height>
</rect> </rect>
</property> </property>
<property name="text">
<string>PushButton</string>
</property>
</widget> </widget>
</widget> </widget>
<widget class="QMenuBar" name="menubar"> <widget class="QMenuBar" name="menubar">

7
src/main.cpp

@ -28,10 +28,7 @@ QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
QApplication a(argc, argv); QApplication a(argc, argv);
ZLOGI(TAG, "hello world"); ZLOGI(TAG, "hello world");
QMainWindow window;
window.resize(800, 600);
window.show();
MainWindow w;
w.show();
return a.exec(); return a.exec();
} }
Loading…
Cancel
Save