class QSGTextNode#

QSGTextNode 类用于在 Qt Quick 场景图中绘制文本布局和文本文档。了解更多…

Inheritance diagram of PySide6.QtQuick.QSGTextNode

6.7 版本新增。

摘要#

虚方法#

注意

这份文档可能包含从C++自动转换为Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译问题,也可以通过创建https:/bugreports.qt.io/projects/PYSIDE上的问题单来告诉我们。

详细描述#

QSGTextNode 对于需要文本的自定义 Qt Quick 项目很有用。它被 Qt Quick 中的 Text、TextEditTextInput 元素使用。

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

注意

必须在调用 addTextLayout()addTextDocument() 之前设置属性,以便它们生效。

class TextStyle#

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

常量

描述

QSGTextNode.Normal

文本不应用任何样式绘制。

QSGTextNode.Outline

文本带有轮廓绘制。

QSGTextNode.Raised

文本以凸起方式绘制。

QSGTextNode.Sunken

文本以凹陷方式绘制。

class RenderType#

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

常量

描述

QSGTextNode.QtRendering

文本使用每个符号的缩放距离字段进行渲染。

QSGTextNode.NativeRendering

文本使用特定平台的技巧进行渲染。

QSGTextNode.CurveRendering

文本使用直接在图形硬件上运行的曲线光栅化器进行渲染。

如果您希望文本在目标平台上看起来是本地的,并且不需要文本转换等高级功能,请选择NativeRendering。使用这种渲染类型与这些功能结合时,可能会导致不利且有时是像素化的结果。

Both Text.QtRenderingText.CurveRendering 都是硬件加速技术。QtRendering 是两者中较快的,但使用更多内存,并且在大型尺寸下可能会出现渲染伪影。在QtRendering无法提供良好的视觉效果或降低图形内存消耗是优先考虑的情况下,应考虑使用CurveRendering

abstract addTextDocument(position, document[, selectionStart=-1[, selectionCount=-1]]])#
参数:

document的内容添加到位于position的文本节点中。如果selectionStart >=0,则标志着选定区域中selectionCount个字符的第一个字符。选择区域以selectionColor()为背景填充表示,选中文本以selectionTextColor()进行渲染。

另见

clear()

概述 addTextLayout(position, layout[, selectionStart=-1[, selectionCount=-1[, lineStart=0[, lineCount=-1]]]]])#
参数:
  • positionQPointF

  • layoutQTextLayout

  • selectionStart – int

  • selectionCount – int

  • lineStart – int

  • lineCount – int

layout的内容添加到位于position的文本节点上。如果selectionStart大于或等于0,则表示范围为selectionCount个字符的选中区域中的第一个字符。选中区域表示为具有selectionColor()背景填充的,选中文本在selectionTextColor()中渲染。

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

另见

clear()

概述 clear()#

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

另见

addTextLayout() addTextDocument()

概述 color()#
返回类型:

QColor

返回用于渲染文本的主要颜色。

另见

setColor()

概述 filtering()#
返回类型:

过滤:

返回在缩放显示的文本中作为部分的图像时使用的采样模式。

概述 linkColor()#
返回类型:

QColor

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

抽象 renderType()#
返回类型:

渲染类型

返回用于渲染文本的符号节点类型。

抽象 renderTypeQuality()#
返回类型:

int

返回节点的渲染类型质量。有关详情,请参阅 setRenderTypeQuality()

抽象 selectionColor()#
返回类型:

QColor

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

抽象 selectionTextColor()#
返回类型:

QColor

返回当文本的任何部分被标记为选中时,选中文本的颜色。

抽象 setColor(color)#
参数:

colorQColor

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

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

另见

color()

抽象 setFiltering(arg__1)#
参数:

arg__1Filtering

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

默认值为 Nearest

另见

filtering()

抽象 setLinkColor(linkColor)#
参数:

linkColorQColor

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

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

另见

linkColor()

抽象 setRenderType(renderType)#
参数:

renderTypeRenderType

设置用于渲染字形的字形节点类型为 renderType

默认值为 QtRendering

另见

renderType()

抽象 setRenderTypeQuality(renderTypeQuality)#
参数:

renderTypeQuality – int

如果当前使用的 renderType() 支持该功能,则设置用于渲染文本的质量。如果支持,这可以用来在视觉保真度与执行速度或内存消耗之间进行权衡。

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

虽然可以设置任意整数值,但如果设置极端值,可能会遇到底层图形硬件施加的限制。Qt Quick Text 元素使用以下预定义值进行操作

  • DefaultRenderTypeQuality

  • -1 (默认)

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

默认值为 -1。

抽象 setSelectionColor(selectionColor)#
参数:

selectionColorQColor

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

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

抽象 setSelectionTextColor(selectionTextColor)#
参数:

selectionTextColorQColor

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

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

抽象 setStyleColor(styleColor)#
参数:

styleColorQColor

将用于渲染文本的样式颜色设置为 styleColor

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

抽象 setTextStyle(textStyle)#
参数:

textStyleTextStyle

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

抽象 setViewport(viewport)#
参数:

viewportQRectF

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

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

另见

viewport()

抽象 styleColor()#
返回类型:

QColor

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

抽象 textStyle()#
返回类型:

TextStyle

返回渲染文本的样式。

抽象viewport()#
返回类型:

QRectF

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

另见

setViewport()