96 lines
2.8 KiB
C++
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);
|
|
};
|