Files
handleaiuinew/HanddleAI/parm/myGroupWidget.h
T
2024-05-18 23:53:26 +08:00

106 lines
2.4 KiB
C++

#ifndef MYGROUPWIDGET_H
#define MYGROUPWIDGET_H
#include <QWidget>
#include <QTextEdit>
#include <QMap>
#include <QScopedPointer>
#include <QJsonObject>
#include <QScrollArea>
#include <QHBoxLayout>
#include <QLabel>
#include <QTextEdit>
#pragma execution_character_set("utf-8")
class ExtendedGroupBox;
/// <summary>
/// 自定义标签输入框
/// </summary>
class DateStateLabel : public QWidget
{
Q_OBJECT
public:
explicit DateStateLabel(QWidget* parent = nullptr);
~DateStateLabel();
void initwidget(const QString name, bool ReadOnly = true);
private:
QScopedPointer<QLabel> label_ptr;
QScopedPointer<QTextEdit> text_ptr;
QString m_name = "";
QString m_value = "";
public:
QString get_value();
QString get_name();
signals:
void ValueChanged(const QString text);
public slots:
void GetshowMag(const QString msg);
};
// 数据展示
class DateSheetWidget :public QWidget {
Q_OBJECT
public:
explicit DateSheetWidget(QWidget* parent = nullptr);
~DateSheetWidget();
void initwidget(QJsonArray& tablelist, bool ReadOnly = true);
QJsonArray GetData();
private:
QMap<QString, DateStateLabel*> m_labMap;
QScopedPointer<QWidget> widget_ptr;
public slots:
void On_reciveData(QString key, QString msg); // 传递数据
protected:
void mouseMoveEvent(QMouseEvent* event)override;
};
/// <summary>
/// 自定义Group嵌套组件
/// </summary>
class MyGroupWidget :public QWidget {
Q_OBJECT
public:
explicit MyGroupWidget(QWidget* parent = nullptr);
~MyGroupWidget();
void initwidget(QJsonArray& pramjson);
private:
QMap<QString, ExtendedGroupBox*> groupBoxlist; // 参数
QMap<QString, DateSheetWidget*> DateSheetlist;
public:
QJsonObject GetDataMap();
};
class MyParamSet : public QWidget
{
Q_OBJECT
public:
explicit MyParamSet(QWidget* parent = nullptr);
~MyParamSet();
void initwidget();
private:
QScopedPointer<QHBoxLayout> gridPtr;
QHBoxLayout* mainWidgetLayout = nullptr;
QScrollArea* m_ScrollArea;
QMap<QString, MyGroupWidget*> m_groupBoxlist;
QMap<QString, ExtendedGroupBox*> m_labMap;
protected:
void fromJson2TXT(QJsonObject&obj);
public:
void SaveParData(const QString path);
void UpParData(const QString path);
protected:
void mouseMoveEvent(QMouseEvent* event)override;
void resizeEvent(QResizeEvent* event)override;
};
#endif