DiagramDesigner/diagramCavas/include/itemPropertyDlg.h

59 lines
1.8 KiB
C++

#ifndef ITEMPROPERTYDLG_H
#define ITEMPROPERTYDLG_H
#include <QDialog>
#include <QMetaType>
#include <QButtonGroup>
#include <QVBoxLayout>
#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<QString,groupStateInfo>); //加载属性组列表
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<QString, QAbstractButton*> btnMap_;
QMap<QString, QWidget*> groupViews_; //stack中存储的属性页
QMap<QString,groupStateInfo> groupInfo_; //属性组结构信息
QMap<QString,groupStateValue> groupValue_; //属性数据
QUuid curUuid_; //当前显示对象的uuid
QString _curModel; //当前模型名
};
#endif