class QFont#

QFont 类指定用于绘制文本的字体查询。 更多...

概述#

方法#

静态函数#

注意

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

详细描述#

警告

本节包含从 C++ 自动翻译成 Python 的代码片段,可能存在错误。

QFont 可以被视作对系统上一个或多个字体的查询。

当创建一个QFont对象时,您需要指定字体应具有的多个属性。Qt将使用具有指定属性的字体,如果没有找到匹配的字体,Qt将使用最接近的已安装字体。实际使用的字体属性可以从一个QFontInfo对象中获取。如果窗口系统提供了精确匹配,exactMatch()将返回true。使用QFontMetricsF来获取测量值,例如使用QFontMetrics::width()获取字符串的像素长度。

未明确设置的属性不会影响字体选择算法,而将优先使用默认值。

要加载特定的物理字体,通常由单个文件表示,请使用QRawFont

请注意,在使用一个QFont之前,必须存在一个QGuiApplication实例。您可以使用QGuiApplication::setFont()设置应用程序的默认字体。

如果所选择的字体不包含需要显示的所有字符,QFont将尝试在最近的等效字体中查找字符。当QPainter从一个字体中绘制字符时,QFont将报告是否有该字符;如果没有,QPainter将绘制一个空的方块。

可以像这样创建QFont

serifFont = QFont("Times", 10, QFont.Bold)
sansFont = QFont("Helvetica [Cronyx]", 12)

在构造函数中设置的属性也可以之后设置,例如 setFamily()setPointSize()setPointSizeF()setWeight() ,以及 setItalic() 。剩余的属性必须在构造后设置,例如 setBold()setUnderline()setOverline()setStrikeOut() 以及 setFixedPitch() 。应该在设置字体属性之后创建 QFontInfo 对象。一个 QFontInfo 对象即使你更改了字体的属性也不会改变。相应的“get”函数,例如 family()pointSize() 等,会返回设置的值,尽管使用的值可能有所不同。实际值可以从一个 QFontInfo 对象中获得。

如果请求的字体族不可用,您可以通过选择一个特定的 StyleHintStyleStrategy 来影响通过 defaultFamily() 返回。

您可以使用 insertSubstitution()insertSubstitutions() 来提供字体族名称的替换方案。可以通过 removeSubstitutions() 移除替换方案。使用 substitute() 获取第一个替换字体族,或者如果没有替换方案,则获取字体族名称本身。使用 substitutes() 获取一个字体族的所有替换方案列表(可能为空)。替换字体后,您必须通过销毁并重新创建所有 QFont 对象来触发字体更新。

每个 QFont 都有一个 key() 您可以使用,例如作为缓存或字典中的键。如果要存储用户的字体首选项,可以使用 QSettings,使用 toString() 将字体信息写入并使用 fromString() 读取。操作符 <<() 和 >>() 函数也可用,但它们在数据流上工作。

您可以使用 setPixelSize() 将屏幕上显示的字符高度设置为指定像素数;然而使用 setPointSize() 会有相似的效果并且提供了设备独立性。

加载字体可能很昂贵,尤其是在 X11 平台上。 QFont 包含广泛的优化,以使 QFont 对象的复制变得快速,并且缓存它所依赖的慢速窗口系统函数的结果。

字体匹配算法按以下方式工作:

  1. 搜索指定的字体族(由 setFamilies() 设置)。

  2. 如果没有找到,则选择支持书写系统的替换字体。字体匹配算法将尝试找到与 QFont 中设置的属性的最准确匹配。这是如何完成的不同于每个平台。

  3. 如果系统上没有字体可以支持文本,那么将用特定的“缺少字符”方框来代替它。

注意

如果选定的字体虽然支持通用书写系统,但缺少一个或多个特定字符的符号,那么Qt将尝试为此或这些特定字符查找备用字体。此功能可以使用NoFontMerging样式策略来禁用。

在Windows中,对“Courier”字体的请求将自动更改为“Courier New”,这是改进版的Courier,允许平滑缩放。可以通过设置PreferBitmap样式策略来选择较老的“Courier”位图字体(参见setStyleStrategy())。

一旦找到字体,剩下的属性将按优先级顺序进行匹配

如果您有一种与家族匹配的字体,即使是其他属性都没有匹配,此字体也将优先于家族不匹配但在其他属性上匹配的字体。这是因为字体家族是主导搜索条件。

点大小被定义为在请求的点大小范围内20%时匹配。当有几个字体匹配,并且只是通过点大小来区分时,将选择与请求的点大小最接近的字体。

用于绘制文本的实际字体家族、字体大小、粗细和其他字体属性取决于在窗口系统下为所选家族可用的内容。可以使用QFontInfo对象来确定用于绘制文本的实际值。

示例

f = QFont("Helvetica")

如果您既有Adobe也有Cronyx Helvetica,您可能会得到其中任何一个。

f = QFont("Helvetica [Cronyx]")

您可以在家族名称中指定您想要的铸造厂。上面的例子中的字体f将设置为“Helvetica [Cronyx]”。

要确定在窗口系统中实际使用的字体属性,请使用QFontInfo对象,例如

info = QFontInfo(f1)
family = info.family()

要获取字体度量信息,请使用QFontMetrics对象,例如

fm = QFontMetrics(f1)
textWidthInPixels = fm.horizontalAdvance("How many pixels wide is self text?")
textHeightInPixels = fm.height()

有关字体的一般信息,请参阅comp.fonts FAQ。有关编码的信息可以从UTR17页面找到。

class StyleHint#

样式提示由字体匹配算法用于在所选字体家族不可用时查找适当的默认家族。

常量

描述

QFont.AnyStyle

字体匹配算法自动选择字体族。这是默认设置。

QFont.SansSerif

字体匹配器优先选择无衬线字体。

QFont.Helvetica

SansSerif的同义词。

QFont.Serif

字体匹配器优先选择衬线字体。

QFont.Times

Serif的同义词。

QFont.TypeWriter

字体匹配器优先选择等宽字体。

QFont.Courier

TypeWriter的同义词。

QFont.OldEnglish

字体匹配器优先选择装饰性字体。

QFont.Decorative

OldEnglish的同义词。

QFont.Monospace

字体匹配器优先选择映射到CSS通用字体族'monospace'的字体。

QFont.Fantasy

字体匹配器优先选择映射到CSS通用字体族'fantasy'的字体。

QFont.Cursive

字体匹配器优先选择映射到CSS通用字体族'cursive'的字体。

QFont.System

字体匹配器优先选择系统字体。

class StyleStrategy#

(继承自 enum.Flag) 样式策略告诉字体匹配算法应使用何种类型的字体来查找合适的默认家族。

以下策略可用

常量

描述

QFont.PreferDefault

默认样式策略。不优先选择任何类型的字体。

QFont.PreferBitmap

优先选择位图字体(而不是轮廓字体)。

QFont.PreferDevice

优先选择设备字体。

QFont.PreferOutline

优先选择轮廓字体(而不是位图字体)。

QFont.ForceOutline

强制使用轮廓字体。

QFont.NoAntialias

不抗锯齿字体。

QFont.NoSubpixelAntialias

如果可能,避免对字体进行子像素抗锯齿。

QFont.PreferAntialias

如果可能,进行抗锯齿。

QFont.NoFontMerging

如果为一定写作系统选定的字体中不包含要绘制的字符,那么Qt会自动选择一个包含该字符的、外观相似的字体。NoFontMerging标志禁用此功能。请注意,启用此标志不会阻止Qt在所选字体不支持文本的写作系统时自动选择合适的字体。

QFont.PreferNoShaping

有时,一个字体会应用复杂的规则来显示一组字符,以便正确显示它们。在某些写作系统(例如布拉米克脚本)中,这是必需的,以便文本可读,但在如拉丁语这样的脚本中,这只是一种外观上的特征。PreferNoShaping标志将在不需要时禁用所有这些功能,这将在大多数情况下提高性能(自Qt 5.10以来)。

这些中的任何一个都可以与以下标志之一进行按位或操作

常量

描述

QFont.PreferMatch

优先匹配。字体匹配器将尝试使用指定的确切字体大小。

QFont.PreferQuality

优先选择最佳质量的字体。字体匹配器将使用字体支持的最近的标准点尺寸。

class HintingPreference#

此枚举描述了可以应用于符号以改善屏幕显示可读性的不同级别的光标。

常量

描述

QFont.PreferDefaultHinting

使用目标平台默认的光标级别。

QFont.PreferNoHinting

如果可能的话,渲染文本时不提示字母轮廓。文本布局将具有印刷精确性和可伸缩性,使用与打印时相同的度量。

QFont.PreferVerticalHinting

如果可能的话,垂直方向对齐字母但不水平提示文本。在显示密度太低而无法准确渲染字母的情况下,文本将显得更清晰。但由于字母的水平度量未提示,所以文本布局将可缩放以适应更高密度设备(如打印机),而不会影响细节,如换行。

QFont.PreferFullHinting

如果可能的话,在水平和垂直方向上都使用提示渲染文本。文本将根据目标设备的可读性进行调整,但由于度量将取决于文本的目标大小,因此字母、换行和其他印刷细节的位置将不会缩放,这意味着文本布局可能在具有不同像素密度的设备上看起来不同。

请注意,此枚举仅描述一个首选项,因为并非所有支持的Qt平台都支持完整提示级别的全部范围。以下表格详细说明了特定的提示首选项对选定目标平台的影响。

PreferDefaultHinting

PreferNoHinting

PreferVerticalHinting

PreferFullHinting

Windows和Qt中的DirectWrite已启用

全提示

垂直提示

垂直提示

全提示

FreeType

操作系统设置

无提示

垂直提示(浅色)

全提示

macOS上的Cocoa

无提示

无提示

无提示

无提示

版本4.8新增

class Weight#

(继承自 enum.IntEnum) Qt使用从1到1000的加权刻度,与OpenType兼容。1的权重将是细的,而1000将是极黑。

此枚举包含预定义的字体权重

常量

描述

QFont.Thin

100

QFont.ExtraLight

200

QFont.Light

300

QFont.Normal

400

QFont.Medium

500

QFont.DemiBold

600

QFont.Bold

700

QFont.ExtraBold

800

QFont.Black

900

class Style#

此枚举描述用于显示文本的字母的不同样式。

常量

描述

QFont.StyleNormal

在未加样式的文本中使用的正常字母。

QFont.StyleItalic

专门为表示斜体文本而设计的斜体字母。

QFont.StyleOblique

看起来倾斜的字母,通常基于未加样式的字母,但未针对表示斜体文本进行精细调整。

另请参阅

Weight

class Stretch#

(继承自 enum.IntEnum) 预定义的缩放值遵循CSS命名约定。值越高,文本越拉伸。

常量

描述

QFont.AnyStretch

0 接受使用其他 QFont 属性匹配的任何缩放(从Qt 5.8开始添加)

QFont.UltraCondensed

50

QFont.ExtraCondensed

62

QFont.Condensed

75

QFont.SemiCondensed

87

QFont.Unstretched

100

QFont.SemiExpanded

112

QFont.Expanded

125

QFont.ExtraExpanded

150

QFont.UltraExpanded

200

另请参阅

setStretch() stretch()

class Capitalization#

此字体作用的文本的渲染选项。

常量

描述

QFont.MixedCase

这是正常的文本渲染选项,不应用字母大小写变化。

QFont.AllUppercase

将文本渲染为全大写类型。

QFont.AllLowercase

将文本渲染为全小写类型。

QFont.SmallCaps

将文本渲染为小写字母类型。

QFont.Capitalize

将文本渲染为首字母大写的类型。

class SpacingType#

常量

描述

QFont.PercentageSpacing

值为100时保持间距不变;值为200时将字符后的间距扩大为字符本身的宽度。

QFont.AbsoluteSpacing

正值会增加字母间距对应的像素值;负值会减少间距。

__init__(font)#
参数

fontQFont

构建一个副本为 font 的字体。

__init__()

构建一个使用应用程序默认字体的字体对象。

另请参阅

font()

__init__(families[, pointSize=-1[, weight=-1[, italic=false]]])
参数
  • families – 字符串列表

  • pointSize – 整数

  • weight – 整数

  • italic – 布尔值

构建一个具有指定 familiespointSizeweightitalic 设置的字体对象。

如果 pointSize 为零或负数,则将字体的大小设置为系统相关的默认值。一般情况下,这是12点。

families 中,每个家族名称条目可以选择性地包括一个制造厂名称,例如“Helvetica [Cronyx]”。如果家族从多个制造厂可用且未指定制造厂,则选择一个任意制造厂。如果家族不可用,将使用 font matching 算法设置家族。

__init__(font, pd)
参数

font 创建用于画布设备 pd 的字体。

__init__(family[, pointSize=-1[, weight=-1[, italic=false]]]])
参数
  • family – str

  • pointSize – 整数

  • weight – 整数

  • italic – 布尔值

构造具有指定 familypointSizeweightitalic 设置的字体对象。

如果 pointSize 为零或负数,则将字体的大小设置为系统相关的默认值。一般情况下,这是12点。

字体名称可以包含找到厂名称,例如“Helvetica [Cronyx]”。如果字体可以从多个厂家获得并且未指定厂家,则选择任意厂家。如果字体不可用,将使用 font matching 算法设置一个字体。

这将使用逗号分隔字体字符串并使用结果列表调用 setFamilies()。为了保留名称中包含逗号的字体,请使用接受 QStringList 的构造函数。

bold()#
返回类型:

bool

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

另请参阅

weight() setBold() bold()

静态cacheStatistics()#
capitalization()#
返回类型:

大小写

返回当前字体的大小写类型。

另请参阅

setCapitalization()

静态cleanup()#
clearFeatures()#

清除 QFont 中之前设置的所有特征。

有关字体特征的更多详细信息,请参阅 setFeature()

clearVariableAxes()#

清除之前在QFont 上设置的任何变量轴值。

有关变量轴的更多详细信息,请参阅setVariableAxis()

defaultFamily()#
返回类型:

字符串

返回与当前样式提示对应的家族名称。

exactMatch()#
返回类型:

bool

如果可用,返回一个与该字体设置完全匹配的窗口系统字体,则返回 true

另请参阅

QFontInfo

families()#
返回类型:

字符串列表

返回请求的字体家族名称,即最后在setFamilies() 调用或构造函数中设置的名称。否则返回空列表。

family()#
返回类型:

字符串

返回请求的字体族名称。这总是与families()调用中的第一个条目相同。

featureTags()#
返回类型:

QFont.Tag列表示例

返回当前在此QFont上设置的所有字体特性的标志。

有关字体特征的更多详细信息,请参阅 setFeature()

featureValue(tag)#
参数

tagTag

返回类型:

int

返回特定特性标志的设置值。如果标志未设置,则返回0。

有关字体特征的更多详细信息,请参阅 setFeature()

fixedPitch()#
返回类型:

bool

如果设置了固定间距,则返回 true;否则返回 false

fromString(arg__1)#
参数

arg__1 – str

返回类型:

bool

将此字体设置为匹配描述代码 descrip。描述为逗号分隔的字体属性列表,如由 toString() 返回。

另请参阅

toString()

hintingPreference()#
返回类型:

HintingPreference

返回使用此字体渲染的符号当前首选的微调级别。

另请参阅

setHintingPreference()

静态 initialize()#
静态 insertSubstitutionarg__1, arg__2)#
参数
  • arg__1 – str

  • arg__2 – str

substituteName 插入家庭 familyName 的替换表中。

替换字体后,通过销毁并重新创建所有 QFont 对象来触发字体的更新。

static insertSubstitutions(arg__1, arg__2)#
参数
  • arg__1 – str

  • arg__2 – 字符串列表

将家族 substituteNames 的列表插入到 familyName 的替换列表中。

替换字体后,通过销毁并重新创建所有 QFont 对象来触发字体的更新。

isCopyOf(arg__1)#
参数

arg__1QFont

返回类型:

bool

如果此字体和 f 是彼此的副本,则返回 true,即其中一个已作为另一个的副本创建,并且自那时起都没有修改。这比相等性更严格。

另请参阅

operator=() operator==()

isFeatureSet(tag)#
参数

tagTag

返回类型:

bool

如果已将 tag 所给的特性值设置在 QFont 上,则返回 true,否则返回 false。

有关字体特征的更多详细信息,请参阅 setFeature()

isVariableAxisSet(tag)#
参数

tagTag

返回类型:

bool

如果已将 tag 所给的变量轴值设置在 QFont 上,则返回 true,否则返回 false。

请参阅 setVariableAxis() 了解字体可变轴的更多详细信息。

italic()#
返回类型:

bool

如果字体样式不是 style()StyleNormal,则返回 true

另请参阅

setItalic() style()

kerning()#
返回类型:

bool

当使用此字体绘制文本时,如果应该使用字距调整,则返回 true

另请参阅

setKerning()

key()#
返回类型:

字符串

返回字体键,字体的文本表示。通常用作缓存或字体字典的键。

另请参阅

QMap

legacyWeight()#
返回类型:

int

注意

此函数已弃用。

请使用 weight() 代替。

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

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

letterSpacing()#
返回类型:

float

返回字体的字母间距。

letterSpacingType()#
返回类型:

间距类型

返回用于字母间距的间距类型。

__ne__(arg__1)#
参数

arg__1QFont

返回类型:

bool

如果这个字体与 f 不同则返回 true;否则返回 false。

如果两个 QFont 的字体属性不同,则被认为是不同的。

另请参阅

operator==()

__lt__(arg__1)#
参数

arg__1QFont

返回类型:

bool

提供对这个字体和字体 f 的任意比较。确保的是,如果两个字体相同,则操作符返回 false,如果字体不同,则 (f1 < f2) == !(f2 < f1)。

在某些情况下此函数很有用,例如如果你想将 QFont 对象用作 QMap 中的键。

另请参阅

operator==() operator!=() isCopyOf()

__eq__(arg__1)#
参数

arg__1QFont

返回类型:

bool

如果此字体与 f 相同,则返回 true;否则返回 false。

如果两个 QFont 的字体属性相等,则认为是相等的。

另请参阅

operator!=() isCopyOf()

overline()#
返回类型:

bool

如果设置了上划线,则返回 true;否则返回 false。

另请参阅

setOverline()

pixelSize()#
返回类型:

int

如果字体是通过 setPixelSize() 设置的,则返回字体的像素大小。如果大小是通过 setPointSize()setPointSizeF() 设置的,则返回 -1。

pointSize()#
返回类型:

int

返回字体的磅大小。如果字体的大小是用像素指定的,则返回 -1。

pointSizeF()#
返回类型:

float

返回字体的磅大小。如果字体的大小是用像素指定的,则返回 -1。

静态removeSubstitutions(arg__1)#
参数

arg__1 – str

移除所有 familyName 的替换。

resolve(arg__1)#
参数

arg__1QFont

返回类型:

QFont

返回一个新 QFont 对象,该对象具有从 other 复制的属性,这些属性在此字体上尚未设置。

resolveMask()#
返回类型:

int

setBold(arg__1)#
参数

arg__1 – bool

如果 enable 为 true,则设置字体的粗细为 Bold;否则设置为 Normal

使用 setWeight() 进行更精细的粗细控制。

注意

如果设置了 styleName(),则此值可能被忽略,或者在平台受支持的情况下,字体人工加粗。

另请参阅

bold() setWeight()

setCapitalization(arg__1)#
参数

arg__1Capitalization

将此字体中文本的字母大小写设置为 caps

字体的字母大小写会让文本以选择的字母大小写模式显示。

另请参阅

capitalization()

setFamilies(arg__1)#
参数

arg__1 – 字符串列表

设置字体的家族名称列表。名称不区分大小写,可以包含字体制造商的名称。列表中第一个家族将被设置为字体的主家族。

families 中,每个家族名称条目可以选择性地包括一个制造厂名称,例如“Helvetica [Cronyx]”。如果家族从多个制造厂可用且未指定制造厂,则选择一个任意制造厂。如果家族不可用,将使用 font matching 算法设置家族。

setFamily(arg__1)#
参数

arg__1 – str

设置字体的家族名称。名称不区分大小写,可以包含字体制造商的名称。

字体名称可以包含找到厂名称,例如“Helvetica [Cronyx]”。如果字体可以从多个厂家获得并且未指定厂家,则选择任意厂家。如果字体不可用,将使用 font matching 算法设置一个字体。

setFeature(tag, value)#
参数
  • tagTag

  • value – int

这是一个重载函数。

在塑形文本时应用一个整数值到 tag 指定的排版特征。这提供了对字体塑形过程的高级访问,并可用于支持API中未涵盖的字体特征。

该特征由一个 tag 指定,通常是从小于四字符特征名编解码的字体特征映射中编解码。

这个整数 value 在大多数情况下代表一个布尔值:零值表示该功能被禁用,非零值表示它被启用。但对于某些字体特征,它可能有其他含义。例如,在 salt 特征上应用时,该值是一个索引,它指定要使用的样式替代品。

例如,frac 字体特征将用斜杠分隔的对角分数(例如 1/2)转换为不同的表示。通常这将涉及将完整的分数烘焙成一个单字符宽度(例如 ½)。

如果字体支持 frac 功能,则可以在塑形器中通过在字体特征映射中将 features["frac"] = 1 设置启用。

注意

默认情况下,Qt 将根据其他字体属性启用和禁用某些字体功能。特别是,kern 功能将根据 kerning() 属性的 QFont 启用/禁用。此外,如果应用了 letterSpacing(),则所有连字功能(ligacligdlighlig)将禁用,但仅限于连字用于装饰的书写系统。对于需要连字的书写系统,这些功能将保持默认状态。使用 setFeature() 和相关函数设置的值将覆盖默认行为。例如,如果将“kern”功能设置为 1,则无论 kerning 属性是否设置为 false,总是启用字距调整。同样,如果设置为 0,则始终禁用。要将字体功能重置为其默认行为,可以使用 unsetFeature() 取消设置。

setFixedPitch(arg__1)#
参数

arg__1 – bool

如果 enable 为 true,则开启固定间距;否则关闭固定间距。

另请参阅

fixedPitch() QFontInfo

setHintingPreference(hintingPreference)#
参数

hintingPreference - HintingPreference

将符号的提示级别偏好设置为 hintingPreference。这是对底层字体渲染系统的提示,使之使用一定级别的提示,跨平台支持程度不同。有关更多详细信息,请参阅 HintingPreference 的文档中的表格。

默认hinting首选项为 PreferDefaultHinting

另请参阅

hintingPreference()

setItalic(b)#
参数

b - 布尔值

如果 enable 为真,将字体样式设置为 style() 中的 StyleItalic;否则,将样式设置为 StyleNormal

注意

如果设置了 styleName(),此值可能被忽略,或者在平台支持的情况下,字体可能被倾斜渲染而不是选择设计的斜体字体变体。

另请参阅

italic() QFontInfo

setKerning(arg__1)#
参数

arg__1 – bool

如果 enable 为真,则为此字体启用kerning;否则禁用它。默认情况下,开启kerning。

当启用kerning时,即使是拉丁文,字形度量也不再相加。换句话说,'a'的宽度和'b'的宽度之和不一定等于“ab”的宽度。

另请参阅

kerning() QFontMetrics

setLegacyWeight(legacyWeight)#
参数

legacyWeight - 整数

注意

此函数已弃用。

请使用 setWeight() 替代此方法。

使用Qt5和之前的版本的旧版字体重量比例将字体设置为 legacyWeight

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

注意

如果设置了 styleName(),则此值可能被忽略,或者在字体选择时可能被忽略。

setLetterSpacing(type, spacing)#
参数

设置字体字母的间距为 spacing,并设置间距类型为 type

字母间距改变了默认字体中单个字母之间的间距。字母之间的间距可以变得更小或更大,可以是一定百分比的字符宽度或像素值,具体取决于选定的间距类型。

setOverline(arg__1)#
参数

arg__1 – bool

如果 enable 为 true,将启用手写线;否则关闭手写线。

另请参阅

overline() QFontInfo

setPixelSize(arg__1)#
参数

arg__1 – int

将字体大小设置为 pixelSize 像素,最大大小为无符号 16 位整数。

使用此函数将字体与设备相关。请使用 setPointSize()setPointSizeF() 以设备无关的方式设置字体大小。

另请参阅

pixelSize()

setPointSize(arg__1)#
参数

arg__1 – int

设置点大小为 pointSize。点大小必须大于零。

setPointSizeF(arg__1)#
参数

arg__1 – float

将点大小设置为 pointSize。点大小必须大于零。在所有平台上可能无法实现请求的精度。

setResolveMask(mask)#
参数

mask – int

setStretch(arg__1)#
参数

arg__1 – int

设置字体的伸缩因子。

伸缩因子匹配字体的压缩或扩展版本,或应用伸缩变换,使字体中所有字符的宽度按 factor 百分比改变。例如,将 factor 设置为 150 将导致字体中的所有字符宽度变为1.5倍(即150%)加宽。最小伸缩因子为1,最大伸缩因子为4000。默认伸缩因子为 AnyStretch,它将接受任何伸缩因子并不对字体应用任何变换。

伸缩因子仅应用于轮廓字体。对于位图字体,忽略伸缩因子。

注意

当匹配具有本地非默认伸缩因子的字体时,请求100%的伸缩将使其变回中等宽度的字体。

另请参阅

stretch() Stretch

setStrikeOut(arg__1)#
参数

arg__1 – bool

如果 enable 为真,则设置删除线;否则关闭删除线。

另请参阅

strikeOut() QFontInfo

setStyle(style)#
参数

styleStyle

将字体的样式设置为 style

另请参阅

style() italic() QFontInfo

setStyleHint(arg__1[, strategy=QFont.StyleStrategy.PreferDefault])#
参数

设置样式提示和策略为 hintstrategy

如果没有明确设置,样式提示将默认为 AnyStyle,样式策略将默认为 PreferDefault

由于X11上的窗口系统不提供相关信息,Qt不支持X11的样式提示。

setStyleName(arg__1)#
参数

arg__1 – str

设置字体的样式名为 styleName。当设置后,其他样式属性如 style()weight() 在字体匹配时将被忽略,尽管它们可能随后由平台字体引擎支持并模拟。

由于人工模拟的样式质量较低,并且缺乏完全的平台支持,不建议同时使用通过样式名匹配和通过样式属性匹配。

另请参阅

styleName()

setStyleStrategy(s)#
参数

sStyleStrategy

设置字体样式策略为 s

setUnderline(arg__1)#
参数

arg__1 – bool

如果 enable 为真,则设置下划线;否则关闭下划线。

另请参阅

underline() QFontInfo

setVariableAxis(tag, value)#
参数
  • tagTag

  • value - float

将一个值应用于对应于 tag 的变量坐标轴。

变量字体会将多个变种(不同的粗细、宽度或样式)存储在同一个字体文件中。这些变种被表示为浮点值,对应于一组预定义的参数,称为“变量坐标轴”。具体的实例通常由字体设计者命名,在 Qt 中,可以使用 setStyleName() 选择这些,就像传统的子族一样。

在有些情况下,提供不同的坐标轴的任意值也是有用的。例如,如果一个字体有 Regular 和 Bold 子族,您可能需要一个介于它们之间的粗细。您可以通过为字体的 “wght”(粗细)坐标轴提供自定义值来手动请求这一功能。

QFont font;
font.setVariableAxis("wght", (QFont::Normal + QFont::Bold) / 2.0f);

如果 “wght” 坐标轴由字体支持并且给定的值在其定义的范围内,将提供一个对应于粗细 550.0 的字体。

许多字体提供了一些标准坐标轴,如“wght”(粗细)、“wdth”(宽度)、“ital”(斜体)和“opsz”(光学大小)。每个坐标轴都在字体本身中定义了独立的范围。例如,“wght”可能从 100 到 900(从 ThinBlack),而“ital”可以是从 0 到 1(从非斜体到全斜体)。

字体也可以选择定义自定义坐标轴;唯一的限制是名称必须符合 Tag 的要求(四个拉丁-1字符的序列)。

默认情况下,不设置任何变量坐标轴。

注意

要在 Windows 上使用变量坐标轴,应用程序必须以 FreeType 或 DirectWrite 字体数据库运行。有关如何选择这些技术,请参阅 QGuiApplication() 的文档。

另请参阅

unsetVariableAxis

setWeight(weight)#
参数

weight - Weight

使用 Weight 枚举定义的刻度,将字体的粗细设置为 weight

注意

如果设置了 styleName(),则此值可能被忽略,或者在字体选择时可能被忽略。

另请参阅

weight() QFontInfo

setWordSpacing(spacing)#
参数

间距 – float

设置字间距为 spacing

字间距会改变单词之间的默认间距。正数值会增加字间距,如果值是负数,则会相应地减小字间距。

字间距不适用于单词之间不以空白区分的书写系统。

stretch()#
返回类型:

int

返回字体的拉伸因子。

另请参阅

setStretch()

strikeOut()#
返回类型:

bool

如果已设置删除线,则返回 true,否则返回 false

另请参阅

setStrikeOut()

style()#
返回类型:

样式

返回字体的样式。

另请参阅

setStyle()

styleHint()#
返回类型:

样式提示

返回 StyleHint

样式提示会影响 字体匹配算法 font 。有关可用提示的列表,请参阅 StyleHint

styleName()#
返回类型:

字符串

返回请求的字体样式名称。这可以用于匹配不规则样式(不能在其他的样式属性中进行标准化)。

styleStrategy()#
返回类型:

样式策略

返回 StyleStrategy

样式策略会影响 字体匹配 算法。有关可用策略的列表,请参阅 StyleStrategy

静态substitute(arg__1)#
参数

arg__1 – str

返回类型:

字符串

当指定 familyName 时,返回将首先使用的第一个家族名称。搜索不区分大小写。

如果没有为 familyName 提供替换项,则返回 familyName

要获取替换项列表,请使用 substitutes()

静态substitutes(arg__1)#
参数

arg__1 – str

返回类型:

字符串列表

返回在任何指定 familyName 时应使用的家族名称列表。搜索不区分大小写。

如果没有为 familyName 提供替换项,则返回空列表。

静态substitutions()#
返回类型:

字符串列表

返回替换后的家族名称的排序列表。

swap(other)#
参数

otherQFont

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

toString()#
返回类型:

字符串

返回字体的描述。描述是属性的逗号分隔列表,非常适合在 QSettings 中使用,包含以下内容

  • 字体家族

  • 点大小

  • 像素大小

  • 样式提示

  • 字体粗细

  • 字体样式

  • 下划线

  • 删除线

  • 固定间距

  • 始终 0

  • 大小写

  • 字母间距

  • 单词间距

  • 拉伸

  • 样式策略

  • 字体样式(不可用时不包含)

另请参阅

fromString()

underline()#
返回类型:

bool

如果设置了下划线,返回 true;否则返回 false

另请参阅

setUnderline()

unsetFeature(tag)#
参数

tagTag

这是一个重载函数。

从启用/禁用功能映射中删除 tag

注意

即使之前未添加功能,这也将在本 QFont 中将字体功能映射标记为修改,以便在与其他字体解决冲突时具有优先级。

取消设置 QFont 上的现有功能将行为重置为默认。

有关字体特征的更多详细信息,请参阅 setFeature()

unsetVariableAxis(tag)#
参数

tagTag

取消设置之前由 tag 给定的可变轴值。

注意

如果没有提前为该标签提供值,当与QFont的其他值对比时,将认为其变量的轴已设置。

另请参阅

setVariableAxis

variableAxisTags()#
返回类型:

QFont.Tag列表示例

返回此QFont上所有已设置变量轴的标签列表。

有关变量轴的更多详细信息,请参阅setVariableAxis()

variableAxisValue(tag)#
参数

tagTag

返回类型:

float

返回为特定变量轴tag设置的值。如果未设置标签,则返回0.0。

有关变量轴的更多详细信息,请参阅setVariableAxis()

weight()#
返回类型:

Weight

返回字体的重量,使用与Weight枚举相同的刻度。

wordSpacing()#
返回类型:

float

返回字体的单词间隔。