DiagramDesigner/common/include/pluginCommon/iCanvasItem.h

35 lines
876 B
C
Raw Normal View History

2026-03-26 16:22:35 +08:00
//ICanvasItem.h
#pragma once
#include <QObject>
#include <QRectF>
#include <QPainter>
class ICanvasItem : public QObject
{
Q_OBJECT
public:
virtual ~ICanvasItem() = default;
// 基本信息
virtual QString typeId() const = 0;
virtual QString displayName() const = 0;
2026-04-01 16:39:23 +08:00
virtual int baseType() const = 0; //基础分类
virtual bool containSvg() const = 0;
2026-03-26 16:22:35 +08:00
// 几何属性
virtual QRectF bounds() const = 0;
virtual void setBounds(const QRectF &rect) = 0;
// 绘制
virtual void draw(QPainter *painter, const QRectF &rect) = 0;
// 属性管理
2026-04-01 16:39:23 +08:00
virtual QVariant getProperty(const QString &key) const = 0;
2026-03-26 16:22:35 +08:00
virtual void setProperty(const QString &key, const QVariant &value) = 0;
signals:
void boundsChanged(const QRectF &newBounds);
void propertyChanged(const QString &key, const QVariant &value);
};