QSGTextNode 类

QSGTextNode 类是一个用于在 Qt Quick 场景图中绘制文本布局和文本文档的类。 更多...

头文件 #include <QSGTextNode>
CMakefind_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmakeQT += quick
自从Qt 6.7
继承自 QSGTransformNode

公共类型

枚举RenderType { QtRendering, NativeRendering, CurveRendering }
枚举TextStyle { Normal, Outline, Raised, Sunken }

公共函数

voidaddTextDocument(QPointF position, QTextDocument *document, int selectionStart = -1, int selectionCount = -1)
voidaddTextLayout(QPointF position, QTextLayout *layout, int selectionStart = -1, int selectionCount = -1, int lineStart = 0, int lineCount = -1)
virtual voidclear() = 0
virtual QColorcolor() const = 0
virtual QSGTexture::Filteringfiltering() const = 0
virtual QColorlinkColor() const = 0
virtual QSGTextNode::RenderTyperenderType() const = 0
virtual intrenderTypeQuality() const = 0
virtual QColorselectionColor() const = 0
virtual QColorselectionTextColor() const = 0
virtual voidsetColor(QColor color) = 0
virtual voidsetFiltering(QSGTexture::Filtering filtering) = 0
virtual voidsetLinkColor(QColor linkColor) = 0
virtual voidsetRenderType(QSGTextNode::RenderType renderType) = 0
virtual voidsetRenderTypeQuality(int renderTypeQuality) = 0
virtual voidsetSelectionColor(QColor color) = 0
virtual voidsetSelectionTextColor(QColor selectionTextColor) = 0
virtual voidsetStyleColor(QColor styleColor) = 0
virtual voidsetTextStyle(QSGTextNode::TextStyle textStyle) = 0
virtual voidsetViewport(const QRectF &viewport) = 0
virtual QColorstyleColor() const = 0
virtual QSGTextNode::TextStyletextStyle() = 0
virtual QRectFviewport() const = 0

详细描述

QSGTextNode可用来创建需要文本的自定义Qt Quick项。它被Qt Quick的Text、TextEditTextInput元素所使用。

你可以使用QQuickWindow::createTextNode()创建QSGTextNode对象。函数addTextLayout()和addTextDocument()提供了向QSGTextNode添加文本的方法。文本必须已经排版。

注意:必须在调用addTextLayout()或addTextDocument()之前设置属性,以使它们生效。

成员类型文档

枚举QSGTextNode::RenderType

该枚举类型描述了用于渲染文本的符号节点的类型。

常量描述
QSGTextNode::QtRendering0文本使用对每个符号的可缩放距离场进行渲染。
QSGTextNode::NativeRendering1文本使用平台特定的技术进行渲染。
QSGTextNode::CurveRendering2文本使用直接在图形硬件上运行的曲线光栅化器进行渲染。

如果你想使文本在目标平台上看起来更原生,且不需要如文本变换等高级功能,请选择NativeRendering。使用NativeRendering渲染类型与这些功能的组合将会产生较差的,有时甚至是像素化的结果。

两种Text.QtRenderingText.CurveRendering都是硬件加速技术。QtRendering两者中更快,但使用更多内存,并且在大尺寸时会显示渲染伪影。CurveRendering应该在QtRendering不提供良好的视觉效果或降低图形内存消耗成为首要任务的情况下考虑使用。

另请参阅:setRenderType()和setRenderTypeQuality()。

枚举QSGTextNode::TextStyle

该枚举类型描述了可以应用于文本渲染的样式。

常量描述
QSGTextNode::Normal0文本不经任何样式绘制。
QSGTextNode::Outline1文本带有外框。
QSGTextNode::Raised2文本绘制为凸起。
QSGTextNode::Sunken3文本绘制为凹入。

另请参阅:setTextStyle()和setStyleColor()。

成员函数文档

void QSGTextNode::addTextDocument(QPointF position, QTextDocument *document, int selectionStart = -1, int selectionCount = -1)

在位置position的文本节点中添加document的内容。如果selectionStart大于等于0,则以选中区域selectionCount数量的字符中的第一个字符为标记。选中区域由選擇顏色(选中的文本用selectionColor()表示)表示,并在selectionTextColor中绘制选中文本。

此函数将其参数传递给虚函数doAddTextDocument()。

另请参阅:clear()和doAddTextDocument()。

void QSGTextNode::addTextLayout(QPointF position, QTextLayout *layout, int selectionStart = -1, int selectionCount = -1, int lineStart = 0, int lineCount = -1)

layout的内容添加到position处的文本节点。如果selectionStart大于等于0,则表示selectionCount个字符选择的区域中的第一个字符。选择区域以selectionColor()的背景填充表示,所选文本以selectionTextColor()渲染。

为了方便,可以使用lineStartlineCount来选择从布局中包含的QTextLine对象的范围。这在创建截断布局时可能很有用。如果lineCount小于0,则节点将包含从lineStart到布局末尾的行。

此函数将其参数传递给虚拟函数doAddTextLayout()。

此外,请参阅clear()和doAddTextLayout()。

[纯虚函数] void QSGTextNode::clear()

清除节点内容,删除表示添加到其上的布局和文档的节点和其他数据。

此外,请参阅addTextLayout()和addTextDocument

[纯虚函数] QColor QSGTextNode::color() const

返回渲染文本时使用的颜色。

此外,请参阅setColor

[纯虚函数] QSGTexture::Filtering QSGTextNode::filtering() const

返回用于缩放显示文本部分中图像的采样模式。

此外,请参阅setFiltering

[纯虚函数] QColor QSGTextNode::linkColor() const

返回文本中超链接的颜色。

此外,请参阅setLinkColor

[纯虚函数] QSGTextNode::RenderType QSGTextNode::renderType() const

返回用于渲染文本的象素节点类型。

此外,请参阅setRenderType

[纯虚函数] int QSGTextNode::renderTypeQuality() const

返回节点的渲染类型质量。有关详细信息,请参阅setRenderTypeQuality

此外,请参阅setRenderTypeQuality

[纯虚函数] QColor QSGTextNode::selectionColor() const

返回文本中的任一部分被标记为选中时选中背景的颜色。

此外,请参阅setSelectionColor

[纯虚函数] QColor QSGTextNode::selectionTextColor() const

返回文本中的任一部分被标记为选中时所选文本的颜色。

另请参阅 setSelectionTextColor().

[纯虚函数] void QSGTextNode::setColor(QColor color)

将用于渲染文本的主要颜色设置为 color

默认为黑色:QColor(0, 0, 0)

另请参阅 color().

[纯虚函数] void QSGTextNode::setFiltering(QSGTexture::Filtering filtering)

设置用于放大显示文本中图像的采样模式为 filtering。对于平滑缩放的图像,请在此处使用 QSGTexture::Linear

默认为 QSGTexture::Nearest

另请参阅 filtering().

[纯虚函数] void QSGTextNode::setLinkColor(QColor linkColor)

将文本中超链接的颜色设置为 linkColor

默认为蓝色:QColor(0, 0, 255)

另请参阅 linkColor().

[纯虚函数] void QSGTextNode::setRenderType(QSGTextNode::RenderType renderType)

将使用的字形节点的类型设置为 renderType

默认为 QtRendering

另请参阅 renderType().

[纯虚函数] void QSGTextNode::setRenderTypeQuality(int renderTypeQuality)

如果使用的 renderType() 支持,设置在渲染文本时要使用的质量。如果支持,可以用来在执行速度或内存之间进行权衡。

renderTypeQuality 小于 0 时,使用默认质量。

renderTypeQuality 可以是任何整数,尽管如果要设置极端值,可能会遇到由底层图形硬件施加的限制。Qt Quick Text 元素使用以下预定义值操作

常量描述
DefaultRenderTypeQuality-1(默认值)
LowRenderTypeQuality26
NormalRenderTypeQuality52
HighRenderTypeQuality104
VeryHighRenderTypeQuality208

此值目前只能由 QtRendering 渲染类型尊重。设置它将改变表示字形使用的距离场的分辨率。将其设置为正常之上将增加内存消耗,但减少了非常大型文本上的滤波伪影。

默认为 -1。

另请参阅 renderTypeQuality().

[纯虚函数] void QSGTextNode::setSelectionColor(QColor color)

当文本的任何部分被标记为选中时,将选择背景的颜色设置为 color

默认为深蓝色:QColor(0, 0, 128)

另请参阅 selectionColor().

[纯虚函数] void QSGTextNode::setSelectionTextColor(QColor selectionTextColor)

当文本的任何部分被选中时,将选中文本的颜色设置为 selectionTextColor

默认为白色:QColor(255, 255, 255)

另请参阅selectionTextColor

[纯虚函数] void QSGTextNode::setStyleColor(QColor styleColor)

设置用于渲染文本时要使用的样式颜色为 styleColor

默认为黑色:QColor(0, 0, 0)

另请参阅styleColorsetTextStyle

[纯虚函数] void QSGTextNode::setTextStyle(QSGTextNode::TextStyle textStyle)

将渲染文本的样式设置为 textStyle。默认为 Normal

另请参阅textStylesetStyleColor

[纯虚函数] QRectF QSGTextNode::setViewport(const QRectF &viewport)

将文本显示的视口边界矩形设置为 viewport。提供此信息使得 QSGTextNode 可以优化哪些文本布局或文档的哪些部分包含在场景图中。

默认为默认构造的 QRectF。对于此视口,所有内容都将包含在图中。

另请参阅viewport

[纯虚函数] QColor QSGTextNode::styleColor() const

返回用于渲染文本的样式颜色。

另请参阅setStyleColortextStyle

[纯虚函数] QSGTextNode::TextStyle QSGTextNode::textStyle()

返回渲染文本的样式。

另请参阅setTextStylestyleColor

[纯虚函数] QRectF QSGTextNode::viewport() const

返回为此 QSGTextNode 设置的当前视口。

另请参阅setViewport

© 2024 Qt 公司 Ltd. 本文档中对文档的贡献是各自所有者的版权。提供的文档根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款许可。Qt 以及相应的徽标是芬兰和/或全球其他地区的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。