QFontInfo 类

The QFontInfo class provides general information about fonts. More...

头文件 #include <QFontInfo>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui

注意: 此类中的所有函数均为 重入式

公共函数

QFontInfo(const QFont &font)
QFontInfo(const QFontInfo &fi)
~QFontInfo()
boolbold() const
boolexactMatch() const
QStringfamily() const
boolfixedPitch() const
boolitalic() const
intpixelSize() const
intpointSize() const
qrealpointSizeF() const
QFont::Stylestyle() const
QFont::StyleHintstyleHint() const
QStringstyleName() const
voidswap(QFontInfo &other)
intweight() const
QFontInfo &operator=(const QFontInfo &fi)

详细描述

The QFontInfo class provides the same access functions as QFont, e.g. family(), pointSize(), italic(), weight(), fixedPitch(), styleHint() etc. But whilst the QFont access functions return the values that were set, a QFontInfo object returns the values that apply to the font that will actually be used to draw the text.

For example, when the program asks for a 25pt Courier font on a machine that has a non-scalable 24pt Courier font, QFont will (normally) use the 24pt Courier for rendering. In this case, QFont::pointSize() returns 25 and QFontInfo::pointSize() returns 24.

There are three ways to create a QFontInfo object.

  1. 使用QFont构造函数创建一个QFont对象会生成一个屏幕字体信息的对象,即该字体不能是打印机字体。如果字体后来被更改,字体信息对象将不会被更新。

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

  2. QWidget::fontInfo()返回一个窗口字体信息。这相当于调用QFontInfo(widget->font())。如果窗口的字体后来被更改,字体信息对象将不会被更新。
  3. QPainter::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...
}

原因是不完整搜索:一些字体系列别名可能缺失在列表中。然而,这种方法会使得应用程序启动时间更快,因此如果可能的话,应该优先使用。

另请参阅QFontQFontMetricsQFontDatabase

成员函数文档

QFontInfo::QFontInfo(const QFont &font)

font构造字体信息对象。

该字体必须是屏幕兼容的,即您在< innocence=" widgets " >或< innocence=" pixmaps " >中绘制文本时使用的字体,而不是< innocence=" QPicture " >或< innocence=" QPrinter " >

字体信息对象在创建时包含构造函数中传递的字体信息,并且当字体属性在以后更改时不会更新。

使用QPainter::fontInfo()在绘图时获取字体信息。这将给出正确的结果,即使是绘制在不兼容屏幕的设备上也是如此。

另请参阅检查字体存在性

QFontInfo::QFontInfo(const QFontInfo &fi)

fi构造一个副本。

[不抛出异常]QFontInfo::~QFontInfo()

销毁字体信息对象。

bool QFontInfo::bold() const

如果< innocence=" weight " >()会返回一个大于QFont::Normal的值,则返回< code translate="no">true;否则返回< code translate="no">false。

另请参阅weight()和QFont::bold()。

bool QFontInfo::exactMatch() const

如果匹配的窗口系统字体与字体中指定的是完全相同的,则返回< code translate="no">true;否则返回< code translate="no">false。

另请参阅QFont::exactMatch()。

QString QFontInfo::family() const

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

另请参阅QFont::family() 和 检查字体是否存在

bool QFontInfo::fixedPitch() const

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

另请参阅QFont::fixedPitch

bool QFontInfo::italic() const

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

另请参阅QFont::italic

int QFontInfo::pixelSize() const

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

另请参阅QFont::pointSize

int QFontInfo::pointSize() const

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

另请参阅pointSizeF() 和 QFont::pointSize

qreal QFontInfo::pointSizeF() const

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

另请参阅QFont::pointSizeF

QFont::Style QFontInfo::style() const

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

另请参阅QFont::style

QFont::StyleHint QFontInfo::styleHint() const

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

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

另请参阅QFont::styleHintQFont::StyleHint

QString QFontInfo::styleName() const

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

另请参阅QFont::styleName

[noexcept] void QFontInfo::swap(QFontInfo &other)

与此字体信息实例进行交换。此函数非常快且从不失败。

int QFontInfo::weight() const

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

另请参阅QFont::weightbold

QFontInfo &QFontInfo::operator=(const QFontInfo &fi)

分配 fi 中的字体信息。

© 2024 The Qt Company Ltd. 本页提供的文档贡献版权属于各自所有者。本页文档根据自由软件基金会发布的 GNU 自由文档许可协议第1.3版 进行许可。Qt及其相关商标是芬兰和/或其他国家/地区的The Qt Company Ltd.的商标。所有其他商标都属于其各自所有者。