PySide6.QtGui.QFontInfo

class QFontInfo

QFontInfo 类提供了关于字体的一般信息。更多

概要

方法

注意

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

详细描述

QFontInfo 类提供了与 QFont 相同的访问函数,例如 family()pointSize()italic()weight()fixedPitch()styleHint() 等。但是,QFont 的访问函数返回的是设置的值,而 QFontInfo 对象返回的是实际用于绘制文本的字体的值。

例如,当程序在具有不可缩放的24pt Courier字体的机器上请求25pt Courier字体时,QFont将(通常)使用24pt Courier进行渲染。在这种情况下,pointSize()返回25,而pointSize()返回24。

有三种方法可以创建一个QFontInfo对象。

  1. 使用QFont调用QFontInfo构造函数会创建一个与屏幕兼容的字体信息对象,即该字体不能是打印机字体。如果稍后更改了字体,字体信息对象不会更新。

    (注意:如果使用打印机字体,返回的值可能不准确。打印机字体并不总是可访问的,因此如果提供了打印机字体,将使用最接近的屏幕字体。)

  2. QWidget::fontInfo() 返回小部件字体的字体信息。这相当于调用 QFontInfo (widget->font())。如果小部件的字体后来被更改,字体信息对象不会更新。

  3. fontInfo() 返回画师当前字体的字体信息。如果画师的字体后来被更改,字体信息对象不会更新。

检查字体是否存在

有时在尝试使用字体之前检查字体是否存在可能很有用。最彻底的方法是使用 exactMatch()

const QFont segoeFont(QLatin1String("Segoe UI"));
if (QFontInfo(segoeFont).exactMatch()) {
    // Use the font...
}

然而,这种对字体的深度搜索在某些平台上可能会很昂贵。QFontDatabase::families().contains() 是一个更快但不够彻底的替代方案:

const QLatin1String segoeUiFamilyName("Segoe UI");
if (QFontDatabase::families().contains(segoeUiFamilyName)) {
    const QFont segoeFont(segoeUiFamilyName);
    // Use the font...
}

这种方法不够彻底,因为它不是一次完整的搜索:列表中可能会缺少一些字体家族的别名。然而,这种方法可以加快应用程序的启动时间,因此如果可能的话,应该始终优先考虑。

__init__(font)
Parameters:

字体QFont

font构建一个字体信息对象。

字体必须与屏幕兼容,即在小部件或pixmaps中绘制文本时使用的字体,而不是QPicture或QPrinter。

字体信息对象保存了在创建时传递给构造函数的字体信息,如果之后字体的属性发生变化,该信息不会被更新。

使用fontInfo()来获取绘制时的字体信息。这将在绘制与屏幕不兼容的绘制设备时也能给出正确的结果。

另请参阅

检查 字体 存在

__init__(fi)
Parameters:

fiQFontInfo

构造fi的副本。

bold()
Return type:

布尔

如果weight()返回的值大于Normal,则返回true;否则返回false

另请参阅

weight() bold()

exactMatch()
Return type:

布尔

如果匹配的窗口系统字体与指定的字体完全相同,则返回 true;否则返回 false

另请参阅

exactMatch()

family()
Return type:

字符串

返回匹配的窗口系统字体的家族名称。

另请参阅

family() 检查 字体 存在

fixedPitch()
Return type:

布尔

返回匹配的窗口系统字体的固定间距值。

另请参阅

fixedPitch()

italic()
Return type:

布尔

返回匹配的窗口系统字体的斜体值。

另请参阅

italic()

legacyWeight()
Return type:

整数

注意

此函数已弃用。

请使用weight()代替。

返回转换为Qt 5及更早版本中使用的非标准字体重量比例的字体重量。

自 Qt 6 起,使用了 OpenType 标准的字体重量比例,而非非标准比例。这需要从使用旧比例的值进行转换。为了方便起见,当从使用旧重量比例的代码移植时,可以使用此函数。

overline()
Return type:

布尔

pixelSize()
Return type:

整数

返回匹配的窗口系统字体的像素大小。

另请参阅

pointSize()

pointSize()
Return type:

整数

返回匹配的窗口系统字体的点大小。

另请参阅

pointSizeF() pointSize()

pointSizeF()
Return type:

浮点数

返回匹配的窗口系统字体的点大小。

另请参阅

pointSizeF()

strikeOut()
Return type:

布尔

style()
Return type:

样式

返回匹配的窗口系统字体的样式值。

另请参阅

style()

styleHint()
Return type:

StyleHint

返回匹配的窗口系统字体的样式。

目前仅返回在QFont中设置的样式提示。

另请参阅

styleHint() StyleHint

styleName()
Return type:

字符串

返回在支持的系统上匹配的窗口系统字体的样式名称。

另请参阅

styleName()

swap(other)
Parameters:

其他QFontInfo

将此字体信息实例与 other 交换。此函数非常快且永远不会失败。

underline()
Return type:

布尔

weight()
Return type:

整数

返回匹配的窗口系统字体的权重。

另请参阅

weight() bold()