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.
 
 

98 lines
1.9 KiB

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#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 <fstream>
#include <functional>
#include <iostream>
#include <list>
#include <map>
#include <memory>
#include <set>
#include <sstream>
#include <string>
#include <vector>
//
#include "logger.hpp"
#include "qfunction.hpp"
#include "zqthread.hpp"
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE
typedef enum {
kreg_val_type_dotted_hex, // 点分16进制
kreg_val_type_dotted_decimal, // 点分10进制
kreg_val_type_str,
kreg_val_type_hex,
kreg_val_type_decimal,
kreg_val_type_binary,
kreg_val_type_freq,
kreg_val_type_signal,
} reg_val_type_t;
class DispalyRegIterm {
public:
QLabel *label = 0;
QTextBrowser *regBrowser = 0;
QTextEdit *regEditer = 0;
QPushButton *writerButton = 0;
uint32_t regvalcache;
reg_val_type_t regvaltype;
};
class MainWindow : public QMainWindow {
Q_OBJECT
private:
std::map<int32_t, DispalyRegIterm *> m_regdisplayer;
std::unique_ptr<iflytop::ZQThread> m_thread;
public:
Ui::MainWindow *ui;
MainWindow(QWidget *parent = nullptr);
~MainWindow();
void refreshPage();
void refreshReadonlyPage();
void updatePage();
private slots:
/**
* @brief 一部修改UI方法
*/
void doinui_slot(QFunction);
signals:
void doinui_signal(QFunction);
private:
static void log_output(QtMsgType type, const QMessageLogContext &context, const QString &msg);
void constructUI();
void dumpLog(const char *fmt, ...);
};
#endif // MAINWINDOW_H