DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DAGraphicsTextItem.h
1#ifndef DAGRAPHICSTEXTITEM_H
2#define DAGRAPHICSTEXTITEM_H
3#include <QGraphicsTextItem>
4#include "DAGraphicsResizeableItem.h"
5#include <QTextCursor>
6class QTextDocument;
7namespace DA
8{
9class DAGraphicsStandardTextItem;
13class DAGRAPHICSVIEW_API DAGraphicsTextItem : public DAGraphicsResizeableItem
14{
15 Q_OBJECT
16 DA_DECLARE_PRIVATE(DAGraphicsTextItem)
17public:
21 enum
22 {
24 };
25 int type() const override
26 {
27 return (Type);
28 }
29
30public:
31 DAGraphicsTextItem(QGraphicsItem* parent = nullptr);
32 DAGraphicsTextItem(const QFont& f, QGraphicsItem* parent = nullptr);
33 DAGraphicsTextItem(const QString& str, const QFont& f, QGraphicsItem* parent = nullptr);
35
36 // 保存到xml中
37 virtual bool saveToXml(QDomDocument* doc, QDomElement* parentElement, const QVersionNumber& ver) const override;
38 virtual bool loadFromXml(const QDomElement* itemElement, const QVersionNumber& ver) override;
39
40 // 获取内部的文本item
41 DAGraphicsStandardTextItem* textItem() const;
42 // 设置尺寸这里的尺寸是不包括旋转和缩放的辅助控制,如果构造函数中需要设置默认大小,使用changeBodySize
43 void setBodySize(const QSizeF& s) override;
44
45 // 文本
46 void setPlainText(const QString& v);
47 QString getPlainText() const;
48
49 // 文本颜色
50 void setSelectTextColor(const QColor& v);
51 QColor getSelectTextColor() const;
52
53 // 字体
54 void setSelectTextFont(const QFont& v);
55 QFont getSelectTextFont() const;
56
57 // 设置选中文本字体,如果没选中,将设置全部
58 void setSelectTextFamily(const QString& v);
59 QString getSelectTextFamily() const;
60
61 // 设置选中文本的字体大小
62 void setSelectTextPointSize(int v);
63 int getSelectTextPointSize() const;
64
65 // 文字斜体
66 void setSelectTextItalic(bool on);
67 bool getSelectTextItalic() const;
68
69 // 文字粗体
70 void setSelectTextBold(bool on);
71 bool getSelectTextBold() const;
72
73 // 设置编辑模式
74 void setEditable(bool on = true);
75 bool isEditable() const;
76
77 // 获取doc
78 QTextDocument* document() const;
79 // textCursor
80 QTextCursor textCursor() const;
81
82 // 转换为富文本
83 QString toHtml() const;
84 void setHtml(const QString& html);
85
86protected:
87 // 绘制具体内容
88 virtual void paintBody(QPainter* painter,
89 const QStyleOptionGraphicsItem* option,
90 QWidget* widget,
91 const QRectF& bodyRect) override;
92 virtual void mousePressEvent(QGraphicsSceneMouseEvent* e) override;
93 //
94 virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant& value) override;
95
96private:
97 void init(const QString& initText);
98};
99}
100#endif // DAGRAPHICSTEXTITEM_H
用于调整大小的item
Definition DAGraphicsResizeableItem.h:48
QGraphicsTextItem是一个非常复杂的item,里面包含了QWidgetTextControl多达3000行,暂时不尝试写一个类似的控件
Definition DAGraphicsStandardTextItem.h:20
支持缩放编辑的文本框Item
Definition DAGraphicsTextItem.h:14
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44
@ ItemType_DAGraphicsTextItem
针对DAGraphicsTextItem的类型
Definition DAGraphicsViewGlobal.h:84