QSGTextNode 类
QSGTextNode 类是一个用于在 Qt Quick 场景图中绘制文本布局和文本文档的类。 更多...
头文件 | #include <QSGTextNode> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Quick) target_link_libraries(mytarget PRIVATE Qt6::Quick) |
qmake | QT += quick |
自从 | Qt 6.7 |
继承自 | QSGTransformNode |
公共类型
枚举 | RenderType { QtRendering, NativeRendering, CurveRendering } |
枚举 | TextStyle { Normal, Outline, Raised, Sunken } |
公共函数
void | addTextDocument(QPointF position, QTextDocument *document, int selectionStart = -1, int selectionCount = -1) |
void | addTextLayout(QPointF position, QTextLayout *layout, int selectionStart = -1, int selectionCount = -1, int lineStart = 0, int lineCount = -1) |
virtual void | clear() = 0 |
virtual QColor | color() const = 0 |
virtual QSGTexture::Filtering | filtering() const = 0 |
virtual QColor | linkColor() const = 0 |
virtual QSGTextNode::RenderType | renderType() const = 0 |
virtual int | renderTypeQuality() const = 0 |
virtual QColor | selectionColor() const = 0 |
virtual QColor | selectionTextColor() const = 0 |
virtual void | setColor(QColor color) = 0 |
virtual void | setFiltering(QSGTexture::Filtering filtering) = 0 |
virtual void | setLinkColor(QColor linkColor) = 0 |
virtual void | setRenderType(QSGTextNode::RenderType renderType) = 0 |
virtual void | setRenderTypeQuality(int renderTypeQuality) = 0 |
virtual void | setSelectionColor(QColor color) = 0 |
virtual void | setSelectionTextColor(QColor selectionTextColor) = 0 |
virtual void | setStyleColor(QColor styleColor) = 0 |
virtual void | setTextStyle(QSGTextNode::TextStyle textStyle) = 0 |
virtual void | setViewport(const QRectF &viewport) = 0 |
virtual QColor | styleColor() const = 0 |
virtual QSGTextNode::TextStyle | textStyle() = 0 |
virtual QRectF | viewport() const = 0 |
详细描述
QSGTextNode可用来创建需要文本的自定义Qt Quick项。它被Qt Quick的Text、TextEdit和TextInput元素所使用。
你可以使用QQuickWindow::createTextNode()创建QSGTextNode对象。函数addTextLayout()和addTextDocument()提供了向QSGTextNode添加文本的方法。文本必须已经排版。
注意:必须在调用addTextLayout()或addTextDocument()之前设置属性,以使它们生效。
成员类型文档
枚举QSGTextNode::RenderType
该枚举类型描述了用于渲染文本的符号节点的类型。
常量 | 值 | 描述 |
---|---|---|
QSGTextNode::QtRendering | 0 | 文本使用对每个符号的可缩放距离场进行渲染。 |
QSGTextNode::NativeRendering | 1 | 文本使用平台特定的技术进行渲染。 |
QSGTextNode::CurveRendering | 2 | 文本使用直接在图形硬件上运行的曲线光栅化器进行渲染。 |
如果你想使文本在目标平台上看起来更原生,且不需要如文本变换等高级功能,请选择NativeRendering
。使用NativeRendering渲染类型与这些功能的组合将会产生较差的,有时甚至是像素化的结果。
两种Text.QtRendering
和Text.CurveRendering
都是硬件加速技术。QtRendering
两者中更快,但使用更多内存,并且在大尺寸时会显示渲染伪影。CurveRendering
应该在QtRendering
不提供良好的视觉效果或降低图形内存消耗成为首要任务的情况下考虑使用。
另请参阅:setRenderType()和setRenderTypeQuality()。
枚举QSGTextNode::TextStyle
该枚举类型描述了可以应用于文本渲染的样式。
常量 | 值 | 描述 |
---|---|---|
QSGTextNode::Normal | 0 | 文本不经任何样式绘制。 |
QSGTextNode::Outline | 1 | 文本带有外框。 |
QSGTextNode::Raised | 2 | 文本绘制为凸起。 |
QSGTextNode::Sunken | 3 | 文本绘制为凹入。 |
另请参阅: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()渲染。
为了方便,可以使用lineStart和lineCount来选择从布局中包含的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(默认值) |
LowRenderTypeQuality | 26 |
NormalRenderTypeQuality | 52 |
HighRenderTypeQuality | 104 |
VeryHighRenderTypeQuality | 208 |
此值目前只能由 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)
。
另请参阅styleColor 和 setTextStyle。
[纯虚函数]
void QSGTextNode::setTextStyle(QSGTextNode::TextStyle textStyle)
将渲染文本的样式设置为 textStyle。默认为 Normal
。
另请参阅textStyle 和 setStyleColor。
[纯虚函数]
QRectF QSGTextNode::setViewport(const QRectF &viewport)
将文本显示的视口边界矩形设置为 viewport。提供此信息使得 QSGTextNode 可以优化哪些文本布局或文档的哪些部分包含在场景图中。
默认为默认构造的 QRectF。对于此视口,所有内容都将包含在图中。
另请参阅viewport。
[纯虚函数]
QColor QSGTextNode::styleColor() const
返回用于渲染文本的样式颜色。
另请参阅setStyleColor 和 textStyle。
[纯虚函数]
QSGTextNode::TextStyle QSGTextNode::textStyle()
返回渲染文本的样式。
另请参阅setTextStyle 和 styleColor。
[纯虚函数]
QRectF QSGTextNode::viewport() const
返回为此 QSGTextNode 设置的当前视口。
另请参阅setViewport。
© 2024 Qt 公司 Ltd. 本文档中对文档的贡献是各自所有者的版权。提供的文档根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款许可。Qt 以及相应的徽标是芬兰和/或全球其他地区的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。