90 lines
2.7 KiB
C
Raw Normal View History

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QStringList>
#include <QSplitter>
#include <QResizeEvent>
2025-10-08 21:45:37 +08:00
#include <QMessageBox>
#include <QPushButton>
#include "models/ImageInfoModel.h"
#include "widgets/ImageGridWithTableWidget.h"
#include "widgets/ImageGridWidget.h"
#include "widgets/DeviceStatusWidget.h"
2025-08-31 21:08:28 +08:00
#include "widgets/TearingDataTableWidget.h"
#include "Presenter/Inc/BeltTearingPresenter.h"
#include "IStatusUpdate.h"
#include "dialognetconfig.h"
2025-09-29 00:56:53 +08:00
#include "dialogalgoarg.h"
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
class QLabel;
QT_END_NAMESPACE
class MainWindow : public QMainWindow, public IStatusUpdate
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
// IStatusUpdate接口方法声明
void OnStatusUpdate(const QString& statusMessage) override;
2025-08-31 21:08:28 +08:00
void OnNeedShowImageCount(const QStringList& deviceAliases) override;
void OnDeviceStatusChanged(const QString& deviceName, int deviceStatus) override;
void OnTearingResult(const BeltTearingResult& result) override;
void OnServerConnected(const QString& serverName) override;
void OnServerDisconnected(const QString& serverName) override;
void OnWorkStatusChanged(BeltTearingWorkStatus status) override;
void OnErrorOccurred(const QString& errorMessage) override;
2025-10-08 21:45:37 +08:00
void OnClearTearingData() override;
2025-08-31 21:08:28 +08:00
protected:
void resizeEvent(QResizeEvent* event) override;
private slots:
void on_btn_hide_clicked();
void on_btn_close_clicked();
void on_btn_test_clicked();
2025-08-31 21:08:28 +08:00
void on_btn_camera_clicked();
2025-09-29 00:56:53 +08:00
void on_btn_algo_config_clicked();
void onConfigSaved();
2025-09-29 00:56:53 +08:00
void onParametersChanged(const QString& serverName, const QByteArray& paramData);
void onRequestServerData(const QString& serverName);
void onServerDataReceived(const QString& serverName, const QJsonObject& data);
2025-10-08 21:45:37 +08:00
// 设备点击事件处理槽函数
void onDeviceClicked(const QString& deviceAlias);
private:
void resizeToFitContent();
void setupVersionDisplay();
2025-08-31 21:08:28 +08:00
// void resizeEvent(QResizeEvent* event);
Ui::MainWindow *ui;
DialogNetConfig* ui_dialognetconfig = nullptr;
ImageGridWithTableWidget* m_gridWithTable {nullptr};
ImageGridWidget* m_gridView {nullptr};
DeviceStatusWidget* m_deviceStatusWidget {nullptr};
2025-08-31 21:08:28 +08:00
TearingDataTableWidget* m_tearingDataTableWidget {nullptr};
QSplitter* m_splitter {nullptr};
BeltTearingPresenter* m_presenter {nullptr};
QLabel* m_versionLabel {nullptr};
2025-09-29 00:56:53 +08:00
DialogAlgoarg* m_dialogAlgoarg {nullptr};
};
#endif // MAINWINDOW_H