Files
ds-628/HanddleAI/QtParameterSettings.h
T
2024-10-17 16:37:42 +08:00

96 lines
2.8 KiB
C++

#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_QtParameterSettings.h"
#include "qobject.h"
#include "qapplication.h"
#include "qjsonobject.h"
#include "qjsonarray.h"
#include "qjsondocument.h"
#include "QLibrary.h"
#include "QMetaType.h"
#include "QDateTime.h"
#include "QThread.h"
#include "QMutex.h"
#include "QDebug.h"
#include "QQueue.h"
#include "QMap.h"
#include "QDir.h"
#include <QJsonParseError>
#include <qfile.h>
#include <qmessagebox.h>
#include "qtablewidget.h"
#include "QHeaderView.h"
#include "QMouseEvent"
#pragma execution_character_set("utf-8")
struct CfgWindow
{
QString stationName;//工站名
QString Key;//相机key或算法key
QString Name;//相机窗口名称,或算法名
QJsonObject obj;
QGroupBox* myQGroupBox;
QTableWidget* myTbleWidget;
QPushButton* myAddButton;
QPushButton* myDelButton;
};
class QtParameterSettings : public QMainWindow
{
Q_OBJECT
public:
QtParameterSettings(QWidget *parent = nullptr);
~QtParameterSettings();
QJsonObject load_camera_cfg(QString cfg);
void initWindow(QJsonObject program_Obj);
void saveProgramObj();
void setCameraTableWidget(int allNum,QString stationKey, QJsonObject cameraObj, QGridLayout* QL1);
void setAlgorithmTableWidget(int allNum, QString stationKey, QJsonObject AlgorithmObj, QGridLayout* QL1);
void clearCameraTableWidget();
private:
Ui::QtParameterSettingsClass ui;
QString cfg_name;
QString currPath ;
QString json_cfg_file_path;//camera_cfg.json";
QString BackUp_json_cfg_file_path;//camera_cfg.json";
QJsonObject programObj;
QJsonObject current_programObj;//修改后,未保存的配置文件;
QJsonArray stationArray;
//QMap<QString, QQueue<QJsonObject>> stationKey_cameraListObj_Map;
int currentPage_cameraNum = 0;
int currentPage_algorithmNum = 0;
QQueue< CfgWindow> cameraCfgWindowQueue;
QQueue< CfgWindow> algorithmCfgWindowQueue;
QMap<QString, QMap<QString, QString>> old_cameraParameterMap;
QMap<QString, QMap<QString, QString>> old_AlgorithmParameterMap;
protected:
void mouseMoveEvent(QMouseEvent* event) override;
void mousePressEvent(QMouseEvent* event) override;
void mouseReleaseEvent(QMouseEvent* event) override;
private:
QPoint m_lastPos;
public:
enum MousePoss { LeftUp = 0, Up, RightUp, Right, RightDown, Down, LeftDown, Left, Middle };
private:
MousePoss mp_curPos; //记录鼠标当前所在区域的变量
//改变窗口的大小
void changeWindowSize(MousePoss type, QRect& wid, QPoint ptemp, int minWidth, int minHeight);
//修改鼠标样式
void setCursorType(MousePoss type);
//计算鼠标位置
MousePoss calcmouseposs(QPoint p);
signals:
void reLoadJsonSetParameter(QStringList moduleKeyList);
void dataChange(QStringList dataList);
};