PySide6.QtGui.QTextLine

class QTextLine

QTextLine 类表示 QTextLayout 中的一行文本。更多

概要

方法

注意

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

详细描述

一行文本通常由createLine()创建。

创建后,可以使用setLineWidth()setNumColumns()函数填充该行。一行具有多个属性,包括它占据的矩形rect(),它的坐标x()y(),它的textLength()width()naturalTextWidth(),以及它相对于文本的ascent()descent()。光标在行中的位置可以从cursorToX()获取,其逆操作可以从xToCursor()获取。可以使用setPosition()移动一行。

class Edge

常量

描述

QTextLine.Leading

QTextLine.Trailing

class CursorPosition

常量

描述

QTextLine.CursorBetweenCharacters

QTextLine.CursorOnCharacter

__init__()

创建一条无效的线。

ascent()
Return type:

浮点数

返回行的上升高度。

另请参阅

descent() height()

cursorToX(cursorPos[, edge=QTextLine.Edge.Leading])
Parameters:
  • cursorPos – int

  • edgeEdge

Return type:

PyObject

这是一个重载函数。

descent()
Return type:

浮点数

返回行的下降部分。

另请参阅

ascent() height()

draw(painter, position)
Parameters:

在给定的painter上绘制一条线,位置为指定的position

glyphRuns([from=-1[, length=-1]])
Parameters:
  • from – 整数

  • length – int

Return type:

QGlyphRun的列表

这是一个重载函数。

返回此QTextLine中由fromlength定义的字符范围内所有字形的索引和位置。from索引相对于包含的QTextLayout中的文本开头,并且范围必须在QTextLine的范围内,如函数textStart()textLength()所给出的。

如果 from 为负数,它将默认为 textStart(),如果 length 为负数,它将默认为 textLength() 的返回值。

注意

这相当于调用 glyphRuns (from, length, QTextLayout::GlyphRunRetrievalFlag::GlyphIndexes | QTextLayout::GlyphRunRetrievalFlag::GlyphPositions)。

另请参阅

glyphRuns()

glyphRuns(from, length, flags)
Parameters:
Return type:

QGlyphRun的列表

返回此QTextLine中由fromlength定义的字符范围内所有字形的索引和位置。from索引相对于包含的QTextLayout中的文本开头,并且范围必须在QTextLine的范围内,如函数textStart()textLength()所给出的。

retrievalFlags 指定了将从布局中检索 QGlyphRun 的哪些属性。为了最小化分配和内存消耗,应将其设置为仅包含您稍后需要访问的属性。

如果 from 为负数,它将默认为 textStart(),如果 length 为负数,它将默认为 textLength() 的返回值。

另请参阅

glyphRuns()

height()
Return type:

浮点数

返回行的高度。如果不包括行间距,这等于 ascent() + descent()。如果包括行间距,这等于 ascent() + descent() + leading()

horizontalAdvance()
Return type:

浮点数

返回文本的水平前进距离。文本的前进距离是从其位置到下一个自然绘制文本的位置的距离。

通过将前进量添加到文本行的位置,并将其用作第二行文本的位置,您将能够将两行并排放置,中间没有间隙。

isValid()
Return type:

布尔

如果此文本行有效,则返回 true;否则返回 false

leading()
Return type:

浮点数

返回行的前导。

另请参阅

ascent() descent() height()

leadingIncluded()
Return type:

布尔

如果正的行间距包含在行的高度中,则返回 true;否则返回 false

默认情况下,不包含前导。

另请参阅

setLeadingIncluded()

lineNumber()
Return type:

整数

返回文本引擎中行的位置。

naturalTextRect()
Return type:

QRectF

返回该行覆盖的矩形。

naturalTextWidth()
Return type:

浮点数

返回文本占用的行宽。这总是小于或等于width(),并且是layout()在不改变换行位置的情况下可以使用的最小宽度。

position()
Return type:

QPointF

返回线条相对于文本布局位置的位置。

另请参阅

setPosition()

rect()
Return type:

QRectF

返回线条的边界矩形。

另请参阅

x() y() textLength() width()

setLeadingIncluded(included)
Parameters:

包含 – 布尔值

如果included为真,则包括正前导到行的高度;否则不包括前导。

默认情况下,不包含前导。

请注意,负的行距被忽略,必须通过让行重叠的方式在代码中使用文本行来处理。

另请参阅

leadingIncluded()

setLineWidth(width)
Parameters:

width – 浮点数

使用给定的width布局行。从起始位置开始,行中填充尽可能多的字符。如果文本不能在行尾分割,则会填充额外的字符直到下一个空格或文本结束。

setNumColumns(columns)
Parameters:

columns – int

布局该行。该行从其起始位置开始填充,填充的字符数量由numColumns指定。如果文本在numColumns字符之前无法分割,则该行将填充尽可能多的字符,直到下一个空白或文本结束。

setNumColumns(columns, alignmentWidth)
Parameters:
  • columns – 整数

  • alignmentWidth – 浮点数

布局该行。从起始位置开始,该行将填充由numColumns指定的尽可能多的字符。如果文本在numColumns字符之前无法分割,则该行将填充尽可能多的字符直到下一个空白或文本结束。提供的alignmentWidth用作对齐的参考宽度。

setPosition(pos)
Parameters:

posQPointF

将行移动到位置 pos

另请参阅

position()

textLength()
Return type:

整数

返回行中文本的长度。

另请参阅

naturalTextWidth()

textStart()
Return type:

整数

返回从传递给QTextLayout的字符串开头开始的行首。

width()
Return type:

浮点数

返回由layout()函数指定的线条宽度。

x()
Return type:

浮点数

返回线条的x位置。

xToCursor(x[, cpos=QTextLine.CursorPosition.CursorBetweenCharacters])
Parameters:
Return type:

整数

将x坐标 x 转换为最接近的匹配光标位置,具体取决于光标位置类型 cpos。请注意,结果光标位置可能包括预编辑区域文本。

另请参阅

cursorToX()

y()
Return type:

浮点数

返回线条的y位置。