- class QFontMetricsF#
- QFontMetricsF类提供字体度量信息。 更多…- 概要#- 方法#- def - __init__()
- def - ascent()
- def - boundingRect()
- def - capHeight()
- def - descent()
- def - elidedText()
- def - fontDpi()
- def - height()
- def - inFont()
- 定义 - inFontUcs4()
- 定义 - leading()
- 定义 - lineWidth()
- 定义 - maxWidth()
- 定义 - __ne__()
- 定义 - __eq__()
- 定义 - size()
- 定义 - swap()
- 定义 - xHeight()
 - 注意 - 本文档可能包含自动从 C++ 转换为 Python 的片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 创建工单的方式通知我们 - 详细信息#- 警告 - 本节包含自动从 C++ 转换为 Python 的片段,可能包含错误。 - QFontMetricsF函数计算给定字体的字符和字符串大小。您可以使用现有的- QFont构造一个- QFontMetricsF对象以获取该字体的度量信息。如果稍后更改了字体,字体度量对象不会更新。- 创建后,该对象提供了访问字体、字符及其以字体渲染的字符串的单独度量的函数。 - 有以下一些操作字体的函数: - ascent()、- descent()、- height()、- leading()和- lineSpacing()返回字体的大小属性。函数- underlinePos()、- overlinePos()、- strikeOutPos()和- lineWidth()返回字符下划线、上划线或删除线的大小属性。这些函数都是快速执行的。- 还有一些操作字体中 MainForm 字体的函数,如: - minLeftBearing()、- minRightBearing()和- maxWidth()。这些函数执行速度较慢,建议尽可能避免使用。- 对于每个字符,您都可以获取它的 - horizontalAdvance()、- leftBearing()和- rightBearing(),并使用- inFont()查找它是否在字体中。您还可以将其视为字符串,并使用字符串函数对其操作。- 字符串函数包括 - horizontalAdvance(),用于返回字符串的像素宽度(或打印机中的点,为打印机),- 示例 - font = QFont("times", 24) fm = QFontMetricsF(font) pixelsWide = fm.horizontalAdvance("What's the advance width of self text?") pixelsHigh = fm.height() - 另请参阅 - __init__(font, pd)#
- 参数 :
- font – - QFont
- pd – - QPaintDevice
 
 
 - 为 - font和- paintdevice构建字体度量对象。- 字体度量将与传递给 paintdevice 的字体兼容。如果 - paintdevice为- None,则度量将是屏幕兼容的,即您在控件或- 字体度量对象在创建时存储在构造函数中传递的字体信息,并且在之后字体属性更改时不会更新。 - __init__(font)
- 参数 :
- font – - QFont
 
 - 为 - font构建字体度量对象。- 字体度量将与创建 - font时使用的 paintdevice 兼容。- 字体度量对象在创建时存储在构造函数中传递的字体信息,并且在之后字体属性更改时不会更新。 - 使用 - QFontMetricsF(const- QFont- __init__(arg__1)
- 参数 :
- arg__1 – - QFontMetricsF
 
 - 构建 - fm的副本。- __init__(arg__1)
- 参数 :
- arg__1 – - QFontMetrics
 
 - 从给定的 - fontMetrics对象构造具有浮点精度字体度量对象。- ascent()#
- 返回类型:
- float 
 
 - 返回字体的上升。 - 字体的上升是从基线到最高位置的字符延伸的距离。在实际应用中,有些字体设计师会打破这条规则,例如他们在字符上方放置多个重音符号,或者为了适应某个字符,所以这个值可能太小(尽管很少见)。 - 另请参阅 - averageCharWidth()#
- 返回类型:
- float 
 
 - 返回字体中符号的平均宽度。 - boundingRect(r, flags, string, tabstops=0, tabarray=None)#
 - 这是一个重载函数。 - 返回给定 - text中字符的边界矩形。这是文本绘制的像素集,当被限制到- rect指定的边界矩形时。如果- rect是一个对- None对象的引用,例如在通过一个默认构造的 QRectF 传递时,边界矩形将不会约束自身的大小。- flags参数是以下标志的位数或:- Qt::AlignLeft 与左边界对齐,对于阿拉伯语和希伯来语除外,它是对右边界对齐。 
- Qt::AlignRight 与右边界对齐,对于阿拉伯语和希伯来语除外,它是对左边界对齐。 
- Qt::AlignJustify 产生对齐的文本。 
- Qt::AlignHCenter 水平居中。 
- Qt::AlignTop 与顶部边界对齐。 
- Qt::AlignBottom 与底部边界对齐。 
- Qt::AlignVCenter 垂直居中 
- Qt::AlignCenter (== - Qt::AlignHCenter | Qt::AlignVCenter)
- Qt::TextSingleLine 忽略文本中的换行符。 
- Qt::TextExpandTabs 扩展制表符(见下文) 
- Qt::TextShowMnemonic 将“&x”解释为 x,即下划线。 
- Qt::TextWordWrap 将文本分成适合矩形的行。 
 - Qt::Horizontal 对齐默认为 Qt::AlignLeft,垂直对齐默认为 Qt::AlignTop。 - 如果设置了多个水平或垂直对齐标志,则结果对齐是未定义的。 - 这些标志在 Qt::AlignmentFlag 中定义。 - 如果 - flags中设置了 Qt::TextExpandTabs,则使用以下行为来解释文本中的制表符- 如果 - tabArray非空,则它指定了一段 0 终止的像素位置序列,用于文本中的制表符。
- 如果 - tabStops非零,则用作制表符间距(像素为单位)。
 - 请注意,边界矩形可能延伸到 (0, 0) 的左侧,例如对于斜体字体。 - 换行符按行断处理。 - 尽管实际的字符高度不同,“Yes” 和 “yes” 的边界矩形高度相同。 - 此函数返回的边界矩形比简单的 - boundingRect()函数计算得到的略大。此函数使用- maximum left和- right字体偏移量,以确保多行文本正确对齐。此外,fontHeight() 和- lineSpacing()用于计算高度,而不是单个字符的高度。- 另请参阅 - horizontalAdvance()- boundingRect()- Alignment- boundingRect(string)
- 参数 :
- string – str 
- 返回类型:
 
 - 返回由 - text指定的字符串中字符的边界矩形。边界矩形始终至少覆盖文本在 (0, 0) 位置绘制时将覆盖的像素集。- 请注意,边界矩形可能会延伸到 (0, 0) 的左侧,例如对于斜体字体,并且返回矩形的宽度可能与 - horizontalAdvance()方法返回的值不同。- 如果您想了解字符串的进展宽度(用于排列一系列字符串),请改用 - horizontalAdvance()。- 换行符被作为普通字符处理,而不是 行断。 - 边界矩形的高度至少与 - height()返回的值一样大。- boundingRect(text, textOption)
- 参数 :
- text – str 
- textOption – - QTextOption
 
- 返回类型:
 
 - 返回使用 - option布局指定的字符串- text的字符边界矩形。边界矩形始终覆盖至少文本如果在 (0, 0) 位置绘制时覆盖的像素集。- 请注意,边界矩形可能会延伸到 (0, 0) 的左侧,例如对于斜体字体,并且返回矩形的宽度可能与 - horizontalAdvance()方法返回的值不同。- 如果您想了解字符串的进展宽度(用于排列一系列字符串),请改用 - horizontalAdvance()。- 换行符被作为普通字符处理,而不是 行断。 - 边界矩形的高度至少与 - height()返回的值一样大。- capHeight()#
- 返回类型:
- float 
 
 - 返回字体的基准高度。 - 字体的基准高度是基准线上方大写字母的高度。它具体指平直的大写字母的高度,如 H 或 I,与圆形字母如 O 或尖形字母如 A 相比,后两者可能会显示溢出。 - 另请参阅 - descent()#
- 返回类型:
- float 
 
 - 返回字体的下降高度。 - 下降高度是指从基线到底部延伸的字符的距离。请注意,这与 X 不同,后者加1像素。在实践中,一些字体设计师会打破这条规则,例如为了适应某些字符,因此这个值可能太小,尽管这种情况很少见。 - 另请参阅 - elidedText(text, mode, width[, flags=0])#
- 参数 :
- text – str 
- mode – - TextElideMode
- width – float 
- flags – int 
 
- 返回类型:
- str 
 
 - 如果字符串 - text的宽度大于- width,则返回省略版本的字符串(即在字符串中包含“…”)。否则,返回原始字符串。- mode参数指定文本是向左(例如,“…tech”)中间(例如,“Tr…ch”)还是向右(例如,“Trol…”)省略。- width以像素为单位指定,而不是字符。- flags参数是可选的,目前仅支持 Qt::TextShowMnemonic 作为值。- 省略标记遵循布局方向。例如,如果 - mode是- Qt::ElideLeft,则对于从右向左的布局,它将位于文本的右侧,如果- mode是- Qt::ElideRight,则位于文本的左侧。- fontDpi()#
- 返回类型:
- float 
 
 - 返回字体DPI。 - height()#
- 返回类型:
- float 
 
 - 返回字体的高度。 - 另请参阅 - horizontalAdvance(string, textOption)#
- 参数 :
- string – str 
- textOption – - QTextOption
 
- 返回类型:
- float 
 
 - 返回使用 - option布局后- text的水平推进像素值。- 推进距离是绘制后续字符后的距离。 - 另请参阅 - horizontalAdvance(string[, length=-1])
- 参数 :
- string – str 
- length – int 
 
- 返回类型:
- float 
 
 - 返回 - text的前- length个字符的水平推进像素值。如果- length为负(默认值),则使用整个字符串。即使- length短得多,也会分析- text的整个长度。- 推进距离是绘制后续字符后的距离。 - 另请参阅 - horizontalAdvanceChar(arg__1)#
- 参数 :
- arg__1 – - QChar
- 返回类型:
- float 
 
 - inFont(arg__1)#
- 参数 :
- arg__1 – - QChar
- 返回类型:
- bool 
 
 - 如果字符 - ch是字体中的有效字符,则返回- true;否则返回- false。- inFontUcs4(ucs4)#
- 参数 :
- ucs4 – int 
- 返回类型:
- bool 
 
 - 如果由 - ch给定的字符,以 UCS-4/UTF-32 编码,是字体中的有效字符,则返回- true;否则返回- false。- leading()#
- 返回类型:
- float 
 
 - 返回字体的大间距。 - 这是自然行间距。 - 另请参阅 - leftBearing(arg__1)#
- 参数 :
- arg__1 – - QChar
- 返回类型:
- float 
 
 - 返回字体中字符 - ch的左边界。- 左边界是字符最左侧像素点相对于字符逻辑起点的向右距离。如果字符的像素延伸到逻辑起点左侧,则此值是负数。 - 有关此度量指标的可视描述,请参阅 - horizontalAdvance()。- lineSpacing()#
- 返回类型:
- float 
 
 - 返回从一行基线到下一行基线的距离。 - lineWidth()#
- 返回类型:
- float 
 
 - 返回下划线和删除线的宽度,适合字体的磅值。 - maxWidth()#
- 返回类型:
- float 
 
 - 返回字体中最宽字符的宽度。 - minLeftBearing()#
- 返回类型:
- float 
 
 - 返回字体的最小左边界。 - 这是字体中所有字符的 - leftBearing(字符) 的最小值。- 请注意,如果字体较大,此函数可能会非常缓慢。 - minRightBearing()#
- 返回类型:
- float 
 
 - 返回字体最小右侧基线值。 - 这是字体中所有字符最小右侧基线(char)。 - 请注意,如果字体较大,此函数可能会非常缓慢。 - __ne__(other)#
- 参数 :
- other – - QFontMetricsF
- 返回类型:
- bool 
 
 - 这是一个重载函数。 - 如果字体度量与 - other字体度量不相等,则返回- true;否则返回- false。- 另请参阅 - operator==()- __eq__(other)#
- 参数 :
- other – - QFontMetricsF
- 返回类型:
- bool 
 
 - 如果字体度量与 - other字体度量相等,则返回- true;否则返回- false。- 如果两个字体度量是从相同的 - QFont构造而来,且它们所绘制的图像设备被认为是兼容的,则认为这两个字体度量相等。- overlinePos()#
- 返回类型:
- float 
 
 - 返回基线到绘制上划线位置的距离。 - rightBearing(arg__1)#
- 参数 :
- arg__1 – - QChar
- 返回类型:
- float 
 
 - 返回字体中字符 - ch的右侧基线值。- 右侧偏移定义为字符最右像素与后续字符逻辑起点的左侧距离。如果字符像素超出字符的 - horizontalAdvance(),此值将为负。- 有关此度量指标的可视描述,请参阅 - horizontalAdvance()。- size(flags, str[, tabstops=0[, tabarray=None]])#
- 参数 :
- flags – int 
- str – 字符串 
- tabstops – int 
- tabarray – int 
 
- 返回类型:
 
 - 返回给定字符串中字符的像素大小。 - flags参数是以下标志的位数或:- Qt::TextSingleLine 会忽略换行字符。 
- Qt::TextExpandTabs 扩展制表符(见下文) 
- Qt::TextShowMnemonic 将“&x”解释为 x,即下划线。 
- Qt::TextWordWrap 将文本分成适合矩形的行。 
 - 这些标志在 Qt::TextFlag 枚举中定义。 - 如果 - flags中设置了 Qt::TextExpandTabs,则使用以下行为来解释文本中的制表符- 如果 - tabArray非空,则它指定了一段 0 终止的像素位置序列,用于文本中的制表符。
- 如果 - tabStops非零,则用作制表符间距(像素为单位)。
 - 换行符按行断处理。 - 注意:尽管实际字符高度不同,但 "Yes" 和 "yes" 的包围矩形高度相同。 - 另请参阅 - strikeOutPos()#
- 返回类型:
- float 
 
 - 返回基线到绘制删除线的距离。 - swap(other)#
- 参数 :
- other – - QFontMetricsF
 
 - 与 - other交换此字体度量实例。此函数非常快速,永不失败。- 返回围绕 - text字符串中字符的紧凑包围矩形。包围矩形始终覆盖至少文本绘制在 (0, 0) 时的像素集。- 请注意,边界矩形可能会延伸到 (0, 0) 的左侧,例如对于斜体字体,并且返回矩形的宽度可能与 - horizontalAdvance()方法返回的值不同。- 如果您想了解字符串的进展宽度(用于排列一系列字符串),请改用 - horizontalAdvance()。- 换行符被作为普通字符处理,而不是 行断。 - tightBoundingRect(text, textOption)
- 参数 :
- text – str 
- textOption – - QTextOption
 
- 返回类型:
 
 - 返回使用 - option布局的字符串中指定字符的紧致边界矩形。边界矩形始终涵盖至少在(0,0)处绘制的文本所覆盖的像素集合。- 请注意,边界矩形可能会延伸到 (0, 0) 的左侧,例如对于斜体字体,并且返回矩形的宽度可能与 - horizontalAdvance()方法返回的值不同。- 如果您想了解字符串的进展宽度(用于排列一系列字符串),请改用 - horizontalAdvance()。- 换行符被作为普通字符处理,而不是 行断。 - underlinePos()#
- 返回类型:
- float 
 
 - 返回基线到下划线应该绘制的地方的距离。 - xHeight()#
- 返回类型:
- float 
 
 - 返回字体的 x 高度。这通常与字符 'x' 的高度相同,但不一定是。