#ifndef ITEMPROPERTYDLG_H #define ITEMPROPERTYDLG_H #include #include #include #include #include "global.h" QT_BEGIN_NAMESPACE namespace Ui { class itemPropertyDlg; } QT_END_NAMESPACE struct PropertyInfo { double resistance = 0; //电阻 DEFAULT 2, bool anchor_v = false; //是否锚定电压 DEFAULT FALSE, double uv_alarm = 0; //电压下限 DEFAULT 90, double ov_alarm = 0; //电压上限 DEFAULT 110, bool anchor_i = false; //是否锚定电流 DEFAULT FALSE, double ui_alarm = 0; //电流下限 DEFAULT 45, double oi_alarm = 0; //电流上限 DEFAULT 55, }; Q_DECLARE_METATYPE(PropertyInfo); class ItemPropertyDlg : public QDialog { Q_OBJECT public: ItemPropertyDlg(QWidget *parent = nullptr); ~ItemPropertyDlg(); void initial(); void loadGroupButton(QMap); //加载属性组列表 void createGroupView(const QString&); //创建属性页 void showDlg(modelDataInfo,QUuid); //显示属性页面 signals: void PropertyChange(const PropertyInfo); public slots: void onOkClicked(); void onCancelClicked(); void onGroupSelected(const QString&); private: Ui::itemPropertyDlg *ui; QVBoxLayout* layout_; QButtonGroup* btnGroup_; QMap btnMap_; QMap groupViews_; //stack中存储的属性页 QMap groupInfo_; //属性组结构信息 QMap groupValue_; //属性数据 QUuid curUuid_; //当前显示对象的uuid QString _curModel; //当前模型名 }; #endif