#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include "IBinocularMarkReceiver.h" QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class QLabel; class QPushButton; class QTextEdit; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); protected: void resizeEvent(QResizeEvent* event) override; private slots: void onConnectClicked(); void onStartWorkClicked(); void onSingleImageClicked(); void onSingleDetectionClicked(); void onSetExposureTimeClicked(); void onSetGainClicked(); void onContinuousImageClicked(); void onContinuousImageTimeout(); void onContinuousDetectionClicked(); void onContinuousDetectionTimeout(); void onContinuousImageStreamClicked(); void onLoadCalibrationFileClicked(); void onGetCalibrationClicked(); void onSetCalibrationClicked(); private: void displayImage(QLabel* label, const std::string& base64Data); void updateImageDisplay(); void appendResult(const QString& text); void updateConnectionState(bool connected); Ui::MainWindow *ui; std::unique_ptr m_receiver; QPixmap m_leftPixmap; QPixmap m_rightPixmap; QString m_leftCameraSN; QString m_rightCameraSN; QTimer* m_continuousImageTimer; bool m_isContinuousImageRunning; QTimer* m_continuousDetectionTimer; bool m_isContinuousDetectionRunning; }; #endif // MAINWINDOW_H