You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
3.9 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. #include "mainwindow.h"
  2. #include <QDateTime>
  3. #include "./ui_mainwindow.h"
  4. #include "src/logger.hpp"
  5. using namespace iflytop;
  6. using namespace std;
  7. static MainWindow *m_mainWindow;
  8. #define TAG "MainWindow"
  9. void MainWindow::log_output(QtMsgType type, const QMessageLogContext &context, const QString &msg) {
  10. QString text;
  11. text.append(msg);
  12. m_mainWindow->append_log_signal(text);
  13. }
  14. void MainWindow::append_log_slot(QString text) {
  15. ui->logbrowser->append(text);
  16. }
  17. void MainWindow::push_reg(QWidget *parent, int off, const char *regname, int32_t regadd, int32_t rwflag) {
  18. DispalyRegIterm *regitem = new DispalyRegIterm();
  19. {
  20. auto *label = new QLabel(parent);
  21. label->setObjectName(QString::fromUtf8("label"));
  22. label->setText(QString(regname));
  23. QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Expanding);
  24. sizePolicy1.setHorizontalStretch(0);
  25. sizePolicy1.setVerticalStretch(0);
  26. sizePolicy1.setHeightForWidth(label->sizePolicy().hasHeightForWidth());
  27. label->setSizePolicy(sizePolicy1);
  28. label->setMinimumSize(QSize(100, 0));
  29. label->setMaximumSize(QSize(16777215, 16777215));
  30. ui->reg_table->addWidget(label, off, 0, 1, 1);
  31. regitem->label = label;
  32. }
  33. {
  34. auto *textbrowser = new QTextBrowser(parent);
  35. textbrowser->setObjectName(QString::fromUtf8("textbrowser"));
  36. textbrowser->setEnabled(true);
  37. textbrowser->setText(QString("demo"));
  38. QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
  39. sizePolicy.setHorizontalStretch(0);
  40. sizePolicy.setVerticalStretch(0);
  41. sizePolicy.setHeightForWidth(textbrowser->sizePolicy().hasHeightForWidth());
  42. textbrowser->setSizePolicy(sizePolicy);
  43. textbrowser->setMaximumSize(QSize(16777215, 16777215));
  44. ui->reg_table->addWidget(textbrowser, off, 1, 1, 1);
  45. regitem->regBrowser = textbrowser;
  46. }
  47. {
  48. auto *textEdit = new QTextEdit(parent);
  49. textEdit->setObjectName(QString::fromUtf8("textEdit"));
  50. textEdit->setEnabled(true);
  51. QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
  52. sizePolicy.setHorizontalStretch(0);
  53. sizePolicy.setVerticalStretch(0);
  54. sizePolicy.setHeightForWidth(textEdit->sizePolicy().hasHeightForWidth());
  55. textEdit->setSizePolicy(sizePolicy);
  56. textEdit->setMaximumSize(QSize(16777215, 16777215));
  57. ui->reg_table->addWidget(textEdit, off, 2, 1, 1);
  58. regitem->regEditer = textEdit;
  59. }
  60. {
  61. // new button
  62. auto *button = new QPushButton(parent);
  63. button->setObjectName(QString::fromUtf8("button"));
  64. button->setText(QString("Write"));
  65. QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
  66. sizePolicy.setHorizontalStretch(0);
  67. sizePolicy.setVerticalStretch(0);
  68. sizePolicy.setHeightForWidth(button->sizePolicy().hasHeightForWidth());
  69. button->setSizePolicy(sizePolicy);
  70. regitem->writerButton = button;
  71. ui->reg_table->addWidget(button, off, 3, 1, 1);
  72. }
  73. m_regdisplayer[regadd] = regitem;
  74. }
  75. void MainWindow::construct_reg_table() { //
  76. push_reg(ui->gridLayoutWidget, 1, "reg0", 0x1000, 0);
  77. push_reg(ui->gridLayoutWidget, 2, "reg1", 0x1001, 0);
  78. push_reg(ui->gridLayoutWidget, 3, "reg1", 0x1002, 0);
  79. push_reg(ui->gridLayoutWidget, 4, "reg1", 0x1003, 0);
  80. push_reg(ui->gridLayoutWidget, 5, "reg1", 0x1004, 0);
  81. auto qrect = ui->gridLayoutWidget->geometry();
  82. qrect.setHeight(31 * 5);
  83. ui->gridLayoutWidget->setGeometry(qrect);
  84. }
  85. //
  86. MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
  87. ui->setupUi(this);
  88. m_mainWindow = this;
  89. construct_reg_table();
  90. connect(this, SIGNAL(append_log_signal(QString)), this, SLOT(append_log_slot(QString)));
  91. qInstallMessageHandler(log_output);
  92. m_thread.reset(new ZQThread("test", [this]() {
  93. while (true) {
  94. ZLOGI(TAG, "start1");
  95. ZLOGI(TAG, "start2");
  96. ZLOGI(TAG, "start3");
  97. ZLOGI(TAG, "start4");
  98. QThread::sleep(1);
  99. }
  100. }));
  101. m_thread->start();
  102. }
  103. MainWindow::~MainWindow() { delete ui; }