DiagramDesigner/diagramCavas/include/powerTerminal.h

72 lines
2.2 KiB
C
Raw Normal View History

2025-04-22 10:10:55 +08:00
#ifndef POWERTERMINAL_H
#define POWERTERMINAL_H
/****************************
* 线
* *************************/
#include <QObject>
#include <QPointF>
#include <QJsonObject>
#include <QUuid>
enum class TerminalType {
PowerInput,
PowerOutput,
2025-04-30 16:29:17 +08:00
PowerConnect,
2025-04-22 10:10:55 +08:00
ControlSignal,
2025-10-17 18:14:44 +08:00
ProtectiveGround,
NewTral
2025-04-22 10:10:55 +08:00
};
class PowerTerminal : public QObject {
Q_OBJECT
public:
explicit PowerTerminal(const QString& parentEntityId,
TerminalType type,
const QString& name,
const QPointF& relativePos = QPointF(),
2025-04-30 16:29:17 +08:00
const QString& uuid = "",
2025-10-11 18:51:33 +08:00
const double dPerX = 0.0,
const double dPerY = 0.0,
2025-04-22 10:10:55 +08:00
QObject* parent = nullptr);
// 属性访问
void setId(const QString& sId){m_id = sId;}
QString id() const { return m_id; }
QString parentEntityId() const { return m_parentEntityId; }
TerminalType type() const { return m_type; }
QString name() const { return m_name; }
QPointF relativePosition() const { return m_relativePosition; }
// 设置相对位置
void setRelativePosition(const QPointF& newPos);
// 序列化
QJsonObject toJson() const;
static PowerTerminal* fromJson(const QJsonObject& json, QObject* parent = nullptr);
2025-06-27 19:17:04 +08:00
void setGenerateBy(const QString& sName) {m_generateBy = sName;}
QString getGenerateBy() {return m_generateBy;}
2025-10-11 18:51:33 +08:00
void setPerX(double d) {m_dPerX = d;}
double getPerX() {return m_dPerX;}
void setPerY(double d) {m_dPerY = d;}
double getPerY() {return m_dPerY;}
2025-10-17 18:14:44 +08:00
void setPortLocate(int n) {m_portLocate = n;}
int getPortLocate() {return m_portLocate;}
2025-04-22 10:10:55 +08:00
signals:
void positionChanged(const QPointF& newPosition);
private:
QString m_id;
const QString m_parentEntityId;
const TerminalType m_type;
QString m_name;
QPointF m_relativePosition;
2025-06-27 19:17:04 +08:00
QString m_generateBy; //被哪个Terminal生成
2025-10-11 18:51:33 +08:00
double m_dPerX = 0.0; //横向百分比位置
double m_dPerY = 0.0; //纵向百分比位置
2025-10-17 18:14:44 +08:00
int m_portLocate = 0; //所处位置(上下左右)
2025-10-11 18:51:33 +08:00
2025-04-22 10:10:55 +08:00
};
#endif //POWERTERMINAL_H