85 lines
2.6 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QStringList>
#include <QSplitter>
#include <QResizeEvent>
#include <QMessageBox>
#include <QPushButton>
#include <QStringListModel>
#include "Presenter/Inc/WheelMeasurePresenter.h"
#include "IWheelMeasureStatus.h"
#include "DetectLogHelper.h"
// 前向声明widgets
class ImageGridWidget;
class DeviceStatusWidget;
class MeasureResultListWidget;
class DialogCameraLevel;
class DialogAlgoArg;
class DialogCamera;
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
class QLabel;
QT_END_NAMESPACE
class MainWindow : public QMainWindow, public IWheelMeasureStatus
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
// IWheelMeasureStatus接口方法声明
void OnStatusUpdate(const QString& statusMessage) override;
void OnNeedShowImageCount(const QStringList& cameraNames) override;
void OnDeviceStatusChanged(const QString& deviceName, int deviceStatus) override;
void OnMeasureResult(const WheelMeasureResult& result) override;
void OnCameraConnected(const QString& cameraName) override;
void OnCameraDisconnected(const QString& cameraName) override;
void OnWorkStatusChangedImpl(WorkStatus status) override;
void OnErrorOccurred(const QString& errorMessage) override;
void OnClearMeasureData() override;
protected:
void resizeEvent(QResizeEvent* event) override;
private slots:
void on_btn_hide_clicked();
void on_btn_close_clicked();
void on_btn_test_clicked();
void on_btn_start_clicked();
void on_btn_stop_clicked();
void on_btn_camera_config_clicked();
void on_btn_algo_config_clicked();
void on_btn_camera_level_clicked();
void onConfigSaved();
void onDeviceClicked(const QString& deviceName);
void onTileRightClicked(int index, const QString& alias);
private:
void setupVersionDisplay();
Ui::MainWindow *ui;
DialogCamera* m_dialogCamera = nullptr;
DialogAlgoArg* m_dialogAlgoArg = nullptr;
DialogCameraLevel* m_dialogCameraLevel = nullptr;
ImageGridWidget* m_gridView = nullptr;
DeviceStatusWidget* m_deviceStatusWidget = nullptr;
MeasureResultListWidget* m_measureResultWidget = nullptr;
QSplitter* m_splitter = nullptr;
WheelMeasurePresenter* m_presenter = nullptr;
QLabel* m_versionLabel = nullptr;
// 日志辅助类
DetectLogHelper* m_logHelper = nullptr;
};
#endif // MAINWINDOW_H