QGraphicsTextItem Class
QGraphicsTextItem 类提供了一个文本项,您可以将其添加到QGraphicsScene 以显示格式化文本。更多
Header: | #include <QGraphicsTextItem> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
继承: | QGraphicsObject |
公共类型
enum | anonymous { Type } |
属性
- openExternalLinks : bool
- textCursor : QTextCursor
公共函数
QGraphicsTextItem(QGraphicsItem *parent = nullptr) | |
QGraphicsTextItem(const QString &text, QGraphicsItem *parent = nullptr) | |
virtual | ~QGraphicsTextItem() |
void | adjustSize() |
QColor | defaultTextColor() const |
QTextDocument * | document() const |
QFont | font() const |
bool | openExternalLinks() const |
void | setDefaultTextColor(const QColor &col) |
void | setDocument(QTextDocument *document) |
void | setFont(const QFont &font) |
void | setHtml(const QString &text) |
void | setOpenExternalLinks(bool open) |
void | setPlainText(const QString &text) |
void | setTabChangesFocus(bool b) |
void | setTextCursor(const QTextCursor &cursor) |
void | setTextInteractionFlags(Qt::TextInteractionFlags flags) |
void | setTextWidth(qreal width) |
bool | tabChangesFocus() const |
QTextCursor | textCursor() const |
Qt::TextInteractionFlags | textInteractionFlags() const |
qreal | textWidth() const |
QString | toHtml() const |
QString | toPlainText() const |
重新实现的公共函数
virtual QRectF | boundingRect() const override |
virtual bool | contains(const QPointF &point) const override |
virtual bool | isObscuredBy(const QGraphicsItem *item) const override |
virtual QPainterPath | opaqueArea() const override |
virtual void | paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override |
virtual QPainterPath | shape() const override |
virtual int | type() const override |
信号
void | linkActivated(const QString &link) |
void | linkHovered(const QString &link) |
重新实现的受保护函数
virtual void | contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override |
virtual void | dragEnterEvent(QGraphicsSceneDragDropEvent *event) override |
virtual void | dragLeaveEvent(QGraphicsSceneDragDropEvent *event) override |
virtual void | dragMoveEvent(QGraphicsSceneDragDropEvent *event) override |
virtual void | dropEvent(QGraphicsSceneDragDropEvent *event) override |
virtual void | focusInEvent(QFocusEvent *event) override |
virtual void | focusOutEvent(QFocusEvent *event) override |
virtual void | hoverEnterEvent(QGraphicsSceneHoverEvent *event) override |
virtual void | hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override |
virtual void | hoverMoveEvent(QGraphicsSceneHoverEvent *event) override |
virtual void | inputMethodEvent(QInputMethodEvent *event) override |
virtual QVariant | inputMethodQuery(Qt::InputMethodQuery query) const override |
virtual void | keyPressEvent(QKeyEvent *event) override |
virtual void | keyReleaseEvent(QKeyEvent *event) override |
virtual void | mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override |
virtual void | mouseMoveEvent(QGraphicsSceneMouseEvent *event) override |
virtual void | mousePressEvent(QGraphicsSceneMouseEvent *event) override |
virtual void | mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override |
virtual bool | sceneEvent(QEvent *event) override |
详细说明
如果您只需要在项目中显示纯文本,请考虑使用QGraphicsSimpleTextItem 代替。
要设置项目的文本,请向 QGraphicsTextItem 的构造函数传递QString ,或调用setHtml()/setPlainText() 。
QGraphicsTextItem 使用文本的格式化大小和相关字体来合理实现boundingRect(),shape(), 和contains()。您可以通过调用setFont() 来设置字体。
通过使用setTextInteractionFlags() 设置Qt::TextEditorInteraction 标志,可以对项目进行编辑。
项目的首选文本宽度可通过setTextWidth() 设置,也可通过textWidth() 获取。
注意: 为了使 HTML 文本居中对齐,必须设置项目的文本宽度。否则,您可以在设置项目文本后调用adjustSize() 。
注: QGraphicsTextItem 默认接受hover events 。您可以使用setAcceptHoverEvents() 来更改。
另请参阅 QGraphicsSimpleTextItem,QGraphicsPathItem,QGraphicsRectItem,QGraphicsEllipseItem,QGraphicsPixmapItem,QGraphicsPolygonItem,QGraphicsLineItem 和图形视图框架。
属性文档
openExternalLinks : bool
指定QGraphicsTextItem 是否应使用QDesktopServices::openUrl() 自动打开链接,而不是发出linkActivated 信号。
默认值为 false。
访问功能:
bool | openExternalLinks() const |
void | setOpenExternalLinks(bool open) |
textCursor : QTextCursor
该属性表示可编辑文本项目中的可见文本光标。
默认情况下,如果未设置项目的文本,该属性将包含一个空文本光标;否则,它将包含一个放置在项目文档开头的文本光标。
访问函数
QTextCursor | textCursor() const |
void | setTextCursor(const QTextCursor &cursor) |
成员函数文档
[explicit]
QGraphicsTextItem::QGraphicsTextItem(QGraphicsItem *parent = nullptr)
构造一个 QGraphicsTextItem。parent 传递给QGraphicsItem 的构造函数。
另请参阅 QGraphicsScene::addItem().
[explicit]
QGraphicsTextItem::QGraphicsTextItem(const QString &text, QGraphicsItem *parent = nullptr)
构造一个 QGraphicsTextItem,使用text 作为默认纯文本。parent 将传递给QGraphicsItem 的构造函数。
另请参阅 QGraphicsScene::addItem().
[virtual noexcept]
QGraphicsTextItem::~QGraphicsTextItem()
void QGraphicsTextItem::adjustSize()
将文本项目调整为合理大小。
[override virtual]
QRectF QGraphicsTextItem::boundingRect() const
重实现:QGraphicsItem::boundingRect() const.
[override virtual]
bool QGraphicsTextItem::contains(const QPointF &point) const
重实现:QGraphicsItem::contains(const QPointF &point) const.
[override virtual protected]
void QGraphicsTextItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
重实现:QGraphicsItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event).
QColor QGraphicsTextItem::defaultTextColor() const
返回未格式化文本使用的默认文本颜色。
另请参阅 setDefaultTextColor()。
QTextDocument *QGraphicsTextItem::document() const
返回项目的文本文档。
另请参阅 setDocument()。
[override virtual protected]
void QGraphicsTextItem::dragEnterEvent(QGraphicsSceneDragDropEvent *event)
重实现:QGraphicsItem::dragEnterEvent(QGraphicsSceneDragDropEvent *event).
[override virtual protected]
void QGraphicsTextItem::dragLeaveEvent(QGraphicsSceneDragDropEvent *event)
重实现:QGraphicsItem::dragLeaveEvent(QGraphicsSceneDragDropEvent *event).
[override virtual protected]
void QGraphicsTextItem::dragMoveEvent(QGraphicsSceneDragDropEvent *event)
重实现:QGraphicsItem::dragMoveEvent(QGraphicsSceneDragDropEvent *event).
[override virtual protected]
void QGraphicsTextItem::dropEvent(QGraphicsSceneDragDropEvent *event)
重实现:QGraphicsItem::dropEvent(QGraphicsSceneDragDropEvent *event).
[override virtual protected]
void QGraphicsTextItem::focusInEvent(QFocusEvent *event)
重实现:QGraphicsItem::focusInEvent(QFocusEvent *event).
[override virtual protected]
void QGraphicsTextItem::focusOutEvent(QFocusEvent *event)
重实现:QGraphicsItem::focusOutEvent(QFocusEvent *event).
QFont QGraphicsTextItem::font() const
返回项目的字体,用于渲染文本。
另请参阅 setFont()。
[override virtual protected]
void QGraphicsTextItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
重实现:QGraphicsItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event).
[override virtual protected]
void QGraphicsTextItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
重实现:QGraphicsItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event).
[override virtual protected]
void QGraphicsTextItem::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
重实现:QGraphicsItem::hoverMoveEvent(QGraphicsSceneHoverEvent *event).
[override virtual protected]
void QGraphicsTextItem::inputMethodEvent(QInputMethodEvent *event)
重实现:QGraphicsItem::inputMethodEvent(QInputMethodEvent *event).
[override virtual protected]
QVariant QGraphicsTextItem::inputMethodQuery(Qt::InputMethodQuery query) const
重实现:QGraphicsItem::inputMethodQuery(Qt::InputMethodQuery query) const.
[override virtual]
bool QGraphicsTextItem::isObscuredBy(const QGraphicsItem *item) const
重实现:QGraphicsItem::isObscuredBy(const QGraphicsItem *item) const.
[override virtual protected]
void QGraphicsTextItem::keyPressEvent(QKeyEvent *event)
重实现:QGraphicsItem::keyPressEvent(QKeyEvent *event).
[override virtual protected]
void QGraphicsTextItem::keyReleaseEvent(QKeyEvent *event)
重实现:QGraphicsItem::keyReleaseEvent(QKeyEvent *event).
[signal]
void QGraphicsTextItem::linkActivated(const QString &link)
当用户点击文本项中启用Qt::LinksAccessibleByMouse 或Qt::LinksAccessibleByKeyboard 的链接时,会发出该信号。link 是被点击的链接。
另请参阅 setTextInteractionFlags() 。
[signal]
void QGraphicsTextItem::linkHovered(const QString &link)
当用户将鼠标悬停在一个文本项目上的链接上时,就会发出该信号,该链接可启用Qt::LinksAccessibleByMouse 。link 是被悬停的链接。
另请参阅 setTextInteractionFlags() 。
[override virtual protected]
void QGraphicsTextItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
重实现:QGraphicsItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event).
[override virtual protected]
void QGraphicsTextItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
重实现:QGraphicsItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event).
[override virtual protected]
void QGraphicsTextItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
重实现:QGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *event).
[override virtual protected]
void QGraphicsTextItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
重实现:QGraphicsItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event).
[override virtual]
QPainterPath QGraphicsTextItem::opaqueArea() const
重实现:QGraphicsItem::opaqueArea() const.
[override virtual]
void QGraphicsTextItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
重实现:QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)。
[override virtual protected]
bool QGraphicsTextItem::sceneEvent(QEvent *event)
重实现:QGraphicsItem::sceneEvent(QEvent *event).
void QGraphicsTextItem::setDefaultTextColor(const QColor &col)
将未格式化文本的颜色设置为col 。
另请参阅 defaultTextColor() 。
void QGraphicsTextItem::setDocument(QTextDocument *document)
设置项目上的文本文档document 。
另请参阅 document()。
void QGraphicsTextItem::setFont(const QFont &font)
将用于渲染文本项的字体设置为font 。
另请参阅 font() 。
void QGraphicsTextItem::setHtml(const QString &text)
将项目的文本设置为text ,假定文本为 HTML 格式。如果项目有键盘输入焦点,该函数还将调用ensureVisible() 以确保文本在所有视口中可见。
另请参阅 toHtml()、hasFocus() 和QGraphicsSimpleTextItem 。
void QGraphicsTextItem::setPlainText(const QString &text)
将项目的文本设置为text 。如果项目有键盘输入焦点,该函数还将调用ensureVisible() 以确保文本在所有视口中可见。
void QGraphicsTextItem::setTabChangesFocus(bool b)
如果b 为真,则Tab 键将导致窗口部件改变焦点;否则,Tab 键将在文档中插入制表符。
在某些情况下,文本编辑不应允许用户使用Tab 键输入制表符或更改缩进,因为这会破坏焦点链。默认值为 false。
另请参阅 tabChangesFocus(),ItemIsFocusable, 和textInteractionFlags().
void QGraphicsTextItem::setTextInteractionFlags(Qt::TextInteractionFlags flags)
设置标志flags ,以指定文本项对用户输入的反应。
QGraphicsTextItem 的默认值是Qt::NoTextInteraction 。该函数还影响 ItemIsFocusableQGraphicsItem 标志,如果flags 与Qt::NoTextInteraction 不同,则设置该标志,否则清除该标志。
默认情况下,文本是只读的。要将项目转换为编辑器,请设置Qt::TextEditable 标志。
另请参见 textInteractionFlags().
void QGraphicsTextItem::setTextWidth(qreal width)
设置项目文本的首选宽度。如果实际文本的宽度大于指定的宽度,那么文本将被分成多行。
如果width 设置为-1,那么文本将不会被分成多行,除非通过明确的换行或新段落来强制执行。
默认值为-1。
请注意,QGraphicsTextItem 内部会保留一个QTextDocument ,用于计算文本宽度。
另请参见 textWidth() 和QTextDocument::setTextWidth()。
[override virtual]
QPainterPath QGraphicsTextItem::shape() const
重实现:QGraphicsItem::shape() const.
bool QGraphicsTextItem::tabChangesFocus() const
如果Tab 键会导致窗口部件改变焦点,则返回true
;否则返回 false。
默认情况下,此行为被禁用,此函数将返回 false。
另请参阅 setTabChangesFocus().
Qt::TextInteractionFlags QGraphicsTextItem::textInteractionFlags() const
返回当前文本交互标志。
另请参阅 setTextInteractionFlags()。
qreal QGraphicsTextItem::textWidth() const
返回文本宽度。
宽度是通过QGraphicsTextItem 内部保存的QTextDocument 计算得出的。
另请参阅 setTextWidth() 和QTextDocument::textWidth()。
QString QGraphicsTextItem::toHtml() const
返回转换为 HTML 格式的项目文本,如果未设置文本,则返回空QString 。
另请参阅 setHtml().
QString QGraphicsTextItem::toPlainText() const
返回转换为纯文本的项目文本,如果未设置文本,则返回空QString 。
另请参阅 setPlainText()。
[override virtual]
int QGraphicsTextItem::type() const
重实现:QGraphicsItem::type() const.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.