#include "mainwindow.h" #include #include "./ui_mainwindow.h" #include "src/logger.hpp" using namespace iflytop; using namespace std; static MainWindow *m_mainWindow; #define TAG "MainWindow" void MainWindow::log_output(QtMsgType type, const QMessageLogContext &context, const QString &msg) { QString text; text.append(msg); m_mainWindow->append_log_signal(text); } void MainWindow::append_log_slot(QString text) { ui->logbrowser->append(text); } 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()); textbrowser->setSizePolicy(sizePolicy); textbrowser->setMaximumSize(QSize(16777215, 16777215)); 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()); textEdit->setSizePolicy(sizePolicy); textEdit->setMaximumSize(QSize(16777215, 16777215)); 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); 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); m_mainWindow = this; construct_reg_table(); connect(this, SIGNAL(append_log_signal(QString)), this, SLOT(append_log_slot(QString))); qInstallMessageHandler(log_output); m_thread.reset(new ZQThread("test", [this]() { while (true) { ZLOGI(TAG, "start1"); ZLOGI(TAG, "start2"); ZLOGI(TAG, "start3"); ZLOGI(TAG, "start4"); QThread::sleep(1); } })); m_thread->start(); } MainWindow::~MainWindow() { delete ui; }