Files
2024-02-27 14:55:36 +08:00

92 lines
2.5 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QApplication>
#include <QDir>
#include <QTimer>
#include <QVBoxLayout>
#include <QScopedPointer>
#include <QJsonObject>
#include <QProcess>
#include <iostream>
#include "opencv.hpp"
#include <FrontendBackendBridge.h>
#pragma execution_character_set("utf-8")
enum DRAG_ABSOLUTE_POSITION
{
DRAG_KEEP=0, //保持不动
DRAG_LOCK_LEFT=1, //锁定左边坐标
DRAG_LOCK_TOP=2, //锁定上边坐标
DRAG_LOCK_RIGHT=3, //锁定右边坐标
DRAG_LOCK_BOTTOM=4 //锁定下边坐标
};
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class TitleBar;
class LeftWindow;
class RightWidget;
class MyWidget;
class ProcessTask;//检测线程管理
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
void initWidget();
void signalAndSlot();
QJsonObject loadCameraCfg();
void SendImage(cv::Mat& mtx, QString outstr, QString outstrRes);
void SendImage2(cv::Mat& mtx, QString outstr, QString outstrRes);
bool GetInitState();
protected:
void mousePressEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event)override;
void mouseReleaseEvent(QMouseEvent *event)override;
void resizeEvent(QResizeEvent *event)override;
private:
Ui::MainWindow *ui;
int g_nBorder = 25;
QPoint m_startPt;
QPoint m_start_drag_point; //拖拽开始的起始位置
bool m_bCanDragResize; //当前窗口是否处于可拖拽窗口大小状态
QString currPath;
QJsonObject m_jsonObj;
DRAG_ABSOLUTE_POSITION m_emHorizontal; //横向的移动范围
DRAG_ABSOLUTE_POSITION m_emVertical; //纵向的移动范围
ProcessTask* m_task = nullptr;
MyWidget* m_area = nullptr;
LeftWindow* m_left = nullptr;
RightWidget* m_right = nullptr;
TitleBar* m_title = nullptr;
QScopedPointer<QVBoxLayout> vboxPtr;
QTimer* m_timer = nullptr;
QMap<QString,QString> listmsg;
bool Isinit = false;
// 外置exe进程
QProcess my_Para_Process;
public slots:
void On_sendCommond(int);
void getMsg(std::string time, std::string msg);
void disconnectMV(QString msg);
signals:
void sig_finished(bool isOk);// 自动刷新
void sendImage(QString, QImage*,int); // 传递拍到的图片
void sendMsg(std::string time, std::string msg);
};
#endif // MAINWINDOW_H