|
|
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QFormLayout>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenu>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QTabWidget>
#include <QtWidgets/QTextBrowser>
#include <QtWidgets/QTextEdit>
#include <QtWidgets/QVBoxLayout>
#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 "zexception.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 constructBaseUI(); void constructAppUI();
private slots: void doinui_slot(QFunction);
signals: void doinui_signal(QFunction);
private: static void log_output(QtMsgType type, const QMessageLogContext &context, const QString &msg); void instructionPreviewShow(const char *fmt, ...); void instructionPreviewClear(); void reportPreviewShow(const char *fmt, ...); void blockDataUploadPreviewShow(const char *fmt, ...); void rawDataPreviewShow(const char *fmt, ...);
void displayWave(int16_t wave1, int16_t wave2, int16_t wave3);
void displayInfo(bool suc, QString info);
private: void processException(const std::zexception &e);
private: /***********************************************************************************************************************
* UI_UTILS * ***********************************************************************************************************************/
QWidget *allocNewTab(QString zh_name); QGroupBox *allocNewBox(QWidget *tab, QString zh_name, int column); void addNewButtonStyle1(QWidget *box, QString zh_name, QStringList params, std::function<void(int argn, const char **args)> onButtonClick); void endAllocNewBox(QGroupBox *box); void endAllocNewTab(QWidget *tab); }; #endif // MAINWINDOW_H
|