#include "mainwindow.h" #include #include #include #include #include #include "./ui_mainwindow.h" #include "logger.hpp" using namespace iflytop; using namespace std; static MainWindow *m_mainWindow; ZQThread *m_zqthread; #define TAG "MainWindow" static const char *fmt(const char *fmt, ...) { va_list args; va_start(args, fmt); static char buf[1024] = {0}; vsnprintf(buf, sizeof(buf), fmt, args); va_end(args); return buf; } static const uint32_t str2int(QString str) { // 如果0x开头,??16进制转换 // 如果0b开头,??2进制转换 // 否则??10进制转换 // 去除掉str中_ str.remove("_"); if (str.startsWith("0x")) { return str.toUInt(nullptr, 16); } else if (str.startsWith("0b")) { // remove 0b str.remove(0, 2); return str.toUInt(nullptr, 2); } else { return str.toUInt(nullptr, 10); } } void MainWindow::log_output(QtMsgType type, const QMessageLogContext &context, const QString &msg) {} void MainWindow::doinui_slot(QFunction func) { if (func.get()) func.get()(); } void MainWindow::constructUI() {} MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); m_mainWindow = this; qRegisterMetaType("int32_t"); qRegisterMetaType("uint32_t"); qRegisterMetaType("float"); qRegisterMetaType>("function"); qRegisterMetaType("QFunction"); connect(this, SIGNAL(doinui_signal(QFunction)), this, SLOT(doinui_slot(QFunction))); constructUI(); } void MainWindow::dumpLog(const char *fmt, ...) { va_list args; va_start(args, fmt); char buf[1024] = {0}; vsnprintf(buf, sizeof(buf), fmt, args); // qDebug() << buf; va_end(args); QString text(buf); QString info; // zos_get_ticket info.append(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz")); info.append(" [Info]:"); info.append(text); static int id; // informationBrowser emit doinui_signal(QFunction([this, info]() { if (ui->instructionPreview->document()->lineCount() > 100) { ui->instructionPreview->document()->clear(); } ui->instructionPreview->append(info); })); } void MainWindow::displayInfo(bool suc, QString info) { emit doinui_signal(QFunction([this, info, suc]() { static int cnt = 0; cnt++; QString _info; _info.append("["); _info.append(QString::number(cnt)); _info.append("] "); _info.append(info); if (suc) { ui->informationBrowser->setStyleSheet("color: green"); } else { ui->informationBrowser->setStyleSheet("color: red"); } ui->informationBrowser->setText(_info); })); } MainWindow::~MainWindow() { delete ui; }