2025-12-20 16:18:12 +08:00

65 lines
1.6 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QImage>
#include <QPixmap>
#include <QTimer>
#include <memory>
#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<IBinocularMarkReceiver> 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