#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include "mqtt/mqttclient.h" #include "addressfactory.h" #include "blastProject/blastprojectfactory.h" #include "equipmentfactory.h" #include "detInfo/detinfofactory.h" #include "blastoperationfactory.h" #include "blastRecord/blastrecordfactory.h" #include "serial/serialtool.h" #include "serialGpsthread.h" #include "worker/timeupdatethread.h" #include "global.h" QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private slots: void onToggleButtonClicked(); void onButtonClicked(QPushButton *button); void handleStoredGNRMCData(const RMCData &data); void onTimeUpdated(const QString &timeString); void messageAndTopicReceived(const QByteArray &message, const QMqttTopicName &topic); private: void initializeAnimate(); void setStyleSheets(QPushButton *selectedButton); void switchPage(QWidget *button); void initialMqttService(); void onMqttConnected(); void initialBtnSerial(); void initialGPSSerial(); void initDateTime(); void onSerialToolCreated(); private: Ui::MainWindow *ui; SerialTool* serialTool; bool m_isMqttConnected = false; bool m_btnSerialInitialized = false; QPropertyAnimation *animate_leftFrame; QList left_button_station; QMap pageFactories; QMap buttonToPage; TimeUpdateThread *timeThread; QString lat = "未知"; QString lon = "未知"; QPoint m_dragPosition; void mousePressEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); }; #endif // MAINWINDOW_H