- class QFont#
-
概述#
方法#
def
__init__()
def
bold()
def
capitalization()
def
clearFeatures()
def
defaultFamily()
def
exactMatch()
def
families()
def
family()
def
featureTags()
def
featureValue()
def
fixedPitch()
def
fromString()
定义
isCopyOf()
定义
italic()
定义
kerning()
定义
key()
定义
__ne__()
定义
__lt__()
定义
__eq__()
定义
overline()
定义
pixelSize()
定义
pointSize()
定义
pointSizeF()
定义
resolve()
定义
setBold()
定义
setFamily()
定义
setFeature()
定义
setItalic()
定义
setKerning()
定义
setStretch()
定义
setStyle()
定义
setWeight()
定义
stretch()
定义
strikeOut()
定义
style()
定义
styleHint()
def
styleName()
def
styleStrategy()
def
swap()
def
toString()
def
underline()
def
unsetFeature()
def
weight()
def
wordSpacing()
静态函数#
def
cleanup()
def
initialize()
def
substitute()
def
substitutes()
def
substitutions()
注意
本文档可能包含从 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
对象中获得。如果请求的字体族不可用,您可以通过选择一个特定的
StyleHint
和StyleStrategy
来影响通过
返回。defaultFamily()
您可以使用
insertSubstitution()
和insertSubstitutions()
来提供字体族名称的替换方案。可以通过removeSubstitutions()
移除替换方案。使用substitute()
获取第一个替换字体族,或者如果没有替换方案,则获取字体族名称本身。使用substitutes()
获取一个字体族的所有替换方案列表(可能为空)。替换字体后,您必须通过销毁并重新创建所有QFont
对象来触发字体更新。每个
QFont
都有一个key()
您可以使用,例如作为缓存或字典中的键。如果要存储用户的字体首选项,可以使用 QSettings,使用toString()
将字体信息写入并使用fromString()
读取。操作符 <<() 和 >>() 函数也可用,但它们在数据流上工作。您可以使用
setPixelSize()
将屏幕上显示的字符高度设置为指定像素数;然而使用setPointSize()
会有相似的效果并且提供了设备独立性。加载字体可能很昂贵,尤其是在 X11 平台上。
QFont
包含广泛的优化,以使QFont
对象的复制变得快速,并且缓存它所依赖的慢速窗口系统函数的结果。字体匹配算法按以下方式工作:
搜索指定的字体族(由
setFamilies()
设置)。如果没有找到,则选择支持书写系统的替换字体。字体匹配算法将尝试找到与
QFont
中设置的属性的最准确匹配。这是如何完成的不同于每个平台。如果系统上没有字体可以支持文本,那么将用特定的“缺少字符”方框来代替它。
注意
如果选定的字体虽然支持通用书写系统,但缺少一个或多个特定字符的符号,那么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
看起来倾斜的字母,通常基于未加样式的字母,但未针对表示斜体文本进行精细调整。
另请参阅
- 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
另请参阅
- class Capitalization#
此字体作用的文本的渲染选项。
常量
描述
QFont.MixedCase
这是正常的文本渲染选项,不应用字母大小写变化。
QFont.AllUppercase
将文本渲染为全大写类型。
QFont.AllLowercase
将文本渲染为全小写类型。
QFont.SmallCaps
将文本渲染为小写字母类型。
QFont.Capitalize
将文本渲染为首字母大写的类型。
- class SpacingType#
常量
描述
QFont.PercentageSpacing
值为100时保持间距不变;值为200时将字符后的间距扩大为字符本身的宽度。
QFont.AbsoluteSpacing
正值会增加字母间距对应的像素值;负值会减少间距。
构建一个副本为
font
的字体。- __init__()
构建一个使用应用程序默认字体的字体对象。
另请参阅
font()
- __init__(families[, pointSize=-1[, weight=-1[, italic=false]]])
- 参数:
families – 字符串列表
pointSize – 整数
weight – 整数
italic – 布尔值
构建一个具有指定
families
、pointSize
、weight
和italic
设置的字体对象。如果
pointSize
为零或负数,则将字体的大小设置为系统相关的默认值。一般情况下,这是12点。在
families
中,每个家族名称条目可以选择性地包括一个制造厂名称,例如“Helvetica [Cronyx]”。如果家族从多个制造厂可用且未指定制造厂,则选择一个任意制造厂。如果家族不可用,将使用font matching
算法设置家族。- __init__(font, pd)
- 参数:
font –
QFont
pd –
QPaintDevice
从
font
创建用于画布设备pd
的字体。- __init__(family[, pointSize=-1[, weight=-1[, italic=false]]]])
- 参数:
family – str
pointSize – 整数
weight – 整数
italic – 布尔值
构造具有指定
family
、pointSize
、weight
和italic
设置的字体对象。如果
pointSize
为零或负数,则将字体的大小设置为系统相关的默认值。一般情况下,这是12点。字体名称可以包含找到厂名称,例如“Helvetica [Cronyx]”。如果字体可以从多个厂家获得并且未指定厂家,则选择任意厂家。如果字体不可用,将使用
font matching
算法设置一个字体。这将使用逗号分隔字体字符串并使用结果列表调用
setFamilies()
。为了保留名称中包含逗号的字体,请使用接受 QStringList 的构造函数。- bold()#
- 返回类型:
bool
如果
weight()
的值大于Medium
,则返回true
;否则返回false
。- 静态cacheStatistics()#
返回当前字体的大小写类型。
另请参阅
- 静态cleanup()#
- clearFeatures()#
清除
QFont
中之前设置的所有特征。有关字体特征的更多详细信息,请参阅
setFeature()
。- clearVariableAxes()#
清除之前在
QFont
上设置的任何变量轴值。有关变量轴的更多详细信息,请参阅
setVariableAxis()
。- defaultFamily()#
- 返回类型:
字符串
返回与当前样式提示对应的家族名称。
- exactMatch()#
- 返回类型:
bool
如果可用,返回一个与该字体设置完全匹配的窗口系统字体,则返回
true
。另请参阅
- families()#
- 返回类型:
字符串列表
返回请求的字体家族名称,即最后在
setFamilies()
调用或构造函数中设置的名称。否则返回空列表。- family()#
- 返回类型:
字符串
返回请求的字体族名称。这总是与
families()
调用中的第一个条目相同。- featureTags()#
- 返回类型:
QFont.Tag列表示例
返回当前在此
QFont
上设置的所有字体特性的标志。有关字体特征的更多详细信息,请参阅
setFeature()
。- featureValue(tag)#
- 参数:
tag –
Tag
- 返回类型:
int
返回特定特性标志的设置值。如果标志未设置,则返回0。
有关字体特征的更多详细信息,请参阅
setFeature()
。- fixedPitch()#
- 返回类型:
bool
如果设置了固定间距,则返回
true
;否则返回false
。- fromString(arg__1)#
- 参数:
arg__1 – str
- 返回类型:
bool
将此字体设置为匹配描述代码
descrip
。描述为逗号分隔的字体属性列表,如由toString()
返回。另请参阅
- hintingPreference()#
- 返回类型:
返回使用此字体渲染的符号当前首选的微调级别。
- 静态 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
对象来触发字体的更新。如果此字体和
f
是彼此的副本,则返回true
,即其中一个已作为另一个的副本创建,并且自那时起都没有修改。这比相等性更严格。另请参阅
operator=()
operator==()
- isFeatureSet(tag)#
- 参数:
tag –
Tag
- 返回类型:
bool
如果已将
tag
所给的特性值设置在QFont
上,则返回 true,否则返回 false。有关字体特征的更多详细信息,请参阅
setFeature()
。- isVariableAxisSet(tag)#
- 参数:
tag –
Tag
- 返回类型:
bool
如果已将
tag
所给的变量轴值设置在QFont
上,则返回 true,否则返回 false。请参阅
setVariableAxis()
了解字体可变轴的更多详细信息。- italic()#
- 返回类型:
bool
如果字体样式不是
style()
的StyleNormal
,则返回true
。另请参阅
- kerning()#
- 返回类型:
bool
当使用此字体绘制文本时,如果应该使用字距调整,则返回
true
。另请参阅
- key()#
- 返回类型:
字符串
返回字体键,字体的文本表示。通常用作缓存或字体字典的键。
另请参阅
QMap
- legacyWeight()#
- 返回类型:
int
注意
此函数已弃用。
请使用
weight()
代替。返回字体的重量转换为 Qt 5 及更早版本中使用的非标准字体重量比例。
从 Qt 6 开始,使用 OpenType 标准的字体重量比例代替非标准比例。这需要从使用旧比例的值进行转换。为了方便,在从使用旧权重比例的代码移植时,可以使用此函数。
- letterSpacing()#
- 返回类型:
float
返回字体的字母间距。
返回用于字母间距的间距类型。
如果这个字体与
f
不同则返回 true;否则返回 false。如果两个 QFont 的字体属性不同,则被认为是不同的。
另请参阅
operator==()
提供对这个字体和字体
f
的任意比较。确保的是,如果两个字体相同,则操作符返回 false,如果字体不同,则 (f1 < f2) == !(f2 < f1)。在某些情况下此函数很有用,例如如果你想将
QFont
对象用作 QMap 中的键。另请参阅
operator==()
operator!=()
isCopyOf()
如果此字体与
f
相同,则返回 true;否则返回 false。如果两个 QFont 的字体属性相等,则认为是相等的。
另请参阅
operator!=()
isCopyOf()
- overline()#
- 返回类型:
bool
如果设置了上划线,则返回 true;否则返回 false。
另请参阅
- pixelSize()#
- 返回类型:
int
如果字体是通过
setPixelSize()
设置的,则返回字体的像素大小。如果大小是通过setPointSize()
或setPointSizeF()
设置的,则返回 -1。- pointSize()#
- 返回类型:
int
返回字体的磅大小。如果字体的大小是用像素指定的,则返回 -1。
- pointSizeF()#
- 返回类型:
float
返回字体的磅大小。如果字体的大小是用像素指定的,则返回 -1。
- 静态removeSubstitutions(arg__1)#
- 参数:
arg__1 – str
移除所有
familyName
的替换。返回一个新
QFont
对象,该对象具有从other
复制的属性,这些属性在此字体上尚未设置。- resolveMask()#
- 返回类型:
int
- setBold(arg__1)#
- 参数:
arg__1 – bool
如果
enable
为 true,则设置字体的粗细为Bold
;否则设置为Normal
。使用
setWeight()
进行更精细的粗细控制。- setCapitalization(arg__1)#
- 参数:
arg__1 –
Capitalization
将此字体中文本的字母大小写设置为
caps
。字体的字母大小写会让文本以选择的字母大小写模式显示。
另请参阅
- setFamilies(arg__1)#
- 参数:
arg__1 – 字符串列表
设置字体的家族名称列表。名称不区分大小写,可以包含字体制造商的名称。列表中第一个家族将被设置为字体的主家族。
在
families
中,每个家族名称条目可以选择性地包括一个制造厂名称,例如“Helvetica [Cronyx]”。如果家族从多个制造厂可用且未指定制造厂,则选择一个任意制造厂。如果家族不可用,将使用font matching
算法设置家族。- setFamily(arg__1)#
- 参数:
arg__1 – str
设置字体的家族名称。名称不区分大小写,可以包含字体制造商的名称。
字体名称可以包含找到厂名称,例如“Helvetica [Cronyx]”。如果字体可以从多个厂家获得并且未指定厂家,则选择任意厂家。如果字体不可用,将使用
font matching
算法设置一个字体。- setFeature(tag, value)#
- 参数:
tag –
Tag
value – int
这是一个重载函数。
在塑形文本时应用一个整数值到
tag
指定的排版特征。这提供了对字体塑形过程的高级访问,并可用于支持API中未涵盖的字体特征。该特征由一个
tag
指定,通常是从小于四字符特征名编解码的字体特征映射中编解码。这个整数
value
在大多数情况下代表一个布尔值:零值表示该功能被禁用,非零值表示它被启用。但对于某些字体特征,它可能有其他含义。例如,在salt
特征上应用时,该值是一个索引,它指定要使用的样式替代品。例如,
frac
字体特征将用斜杠分隔的对角分数(例如1/2
)转换为不同的表示。通常这将涉及将完整的分数烘焙成一个单字符宽度(例如½
)。如果字体支持
frac
功能,则可以在塑形器中通过在字体特征映射中将features["frac"] = 1
设置启用。注意
默认情况下,Qt 将根据其他字体属性启用和禁用某些字体功能。特别是,
kern
功能将根据kerning()
属性的QFont
启用/禁用。此外,如果应用了letterSpacing()
,则所有连字功能(liga
、clig
、dlig
、hlig
)将禁用,但仅限于连字用于装饰的书写系统。对于需要连字的书写系统,这些功能将保持默认状态。使用 setFeature() 和相关函数设置的值将覆盖默认行为。例如,如果将“kern”功能设置为 1,则无论 kerning 属性是否设置为 false,总是启用字距调整。同样,如果设置为 0,则始终禁用。要将字体功能重置为其默认行为,可以使用unsetFeature()
取消设置。另请参阅
- setFixedPitch(arg__1)#
- 参数:
arg__1 – bool
如果
enable
为 true,则开启固定间距;否则关闭固定间距。另请参阅
- setHintingPreference(hintingPreference)#
- 参数:
hintingPreference -
HintingPreference
将符号的提示级别偏好设置为
hintingPreference
。这是对底层字体渲染系统的提示,使之使用一定级别的提示,跨平台支持程度不同。有关更多详细信息,请参阅HintingPreference
的文档中的表格。默认hinting首选项为
PreferDefaultHinting
。另请参阅
- setItalic(b)#
- 参数:
b - 布尔值
如果
enable
为真,将字体样式设置为style()
中的StyleItalic
;否则,将样式设置为StyleNormal
。- setKerning(arg__1)#
- 参数:
arg__1 – bool
如果
enable
为真,则为此字体启用kerning;否则禁用它。默认情况下,开启kerning。当启用kerning时,即使是拉丁文,字形度量也不再相加。换句话说,'a'的宽度和'b'的宽度之和不一定等于“ab”的宽度。
另请参阅
- setLegacyWeight(legacyWeight)#
- 参数:
legacyWeight - 整数
注意
此函数已弃用。
请使用
setWeight()
替代此方法。使用Qt5和之前的版本的旧版字体重量比例将字体设置为
legacyWeight
。从 Qt 6 开始,使用 OpenType 标准的字体重量比例代替非标准比例。这需要从使用旧比例的值进行转换。为了方便,在从使用旧权重比例的代码移植时,可以使用此函数。
- setLetterSpacing(type, spacing)#
- 参数:
类型 –
SpacingType
间距 – float
设置字体字母的间距为
spacing
,并设置间距类型为type
。字母间距改变了默认字体中单个字母之间的间距。字母之间的间距可以变得更小或更大,可以是一定百分比的字符宽度或像素值,具体取决于选定的间距类型。
- setOverline(arg__1)#
- 参数:
arg__1 – bool
如果
enable
为 true,将启用手写线;否则关闭手写线。另请参阅
- setPixelSize(arg__1)#
- 参数:
arg__1 – int
将字体大小设置为
pixelSize
像素,最大大小为无符号 16 位整数。使用此函数将字体与设备相关。请使用
setPointSize()
或setPointSizeF()
以设备无关的方式设置字体大小。另请参阅
- 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
,它将接受任何伸缩因子并不对字体应用任何变换。伸缩因子仅应用于轮廓字体。对于位图字体,忽略伸缩因子。
- setStrikeOut(arg__1)#
- 参数:
arg__1 – bool
如果
enable
为真,则设置删除线;否则关闭删除线。另请参阅
将字体的样式设置为
style
。- setStyleHint(arg__1[, strategy=QFont.StyleStrategy.PreferDefault])#
- 参数:
arg__1 –
StyleHint
strategy –
StyleStrategy
设置样式提示和策略为
hint
和strategy
。如果没有明确设置,样式提示将默认为
AnyStyle
,样式策略将默认为PreferDefault
。由于X11上的窗口系统不提供相关信息,Qt不支持X11的样式提示。
- setStyleName(arg__1)#
- 参数:
arg__1 – str
设置字体的样式名为
styleName
。当设置后,其他样式属性如style()
和weight()
在字体匹配时将被忽略,尽管它们可能随后由平台字体引擎支持并模拟。由于人工模拟的样式质量较低,并且缺乏完全的平台支持,不建议同时使用通过样式名匹配和通过样式属性匹配。
另请参阅
- setStyleStrategy(s)#
- 参数:
s –
StyleStrategy
设置字体样式策略为
s
。- setUnderline(arg__1)#
- 参数:
arg__1 – bool
如果
enable
为真,则设置下划线;否则关闭下划线。另请参阅
- setVariableAxis(tag, value)#
- 参数:
tag –
Tag
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(从
Thin
到Black
),而“ital”可以是从 0 到 1(从非斜体到全斜体)。字体也可以选择定义自定义坐标轴;唯一的限制是名称必须符合
Tag
的要求(四个拉丁-1字符的序列)。默认情况下,不设置任何变量坐标轴。
注意
要在 Windows 上使用变量坐标轴,应用程序必须以 FreeType 或 DirectWrite 字体数据库运行。有关如何选择这些技术,请参阅
QGuiApplication()
的文档。另请参阅
使用
Weight
枚举定义的刻度,将字体的粗细设置为weight
。- setWordSpacing(spacing)#
- 参数:
间距 – float
设置字间距为
spacing
。字间距会改变单词之间的默认间距。正数值会增加字间距,如果值是负数,则会相应地减小字间距。
字间距不适用于单词之间不以空白区分的书写系统。
- stretch()#
- 返回类型:
int
返回字体的拉伸因子。
另请参阅
- strikeOut()#
- 返回类型:
bool
如果已设置删除线,则返回
true
,否则返回false
。另请参阅
返回字体的样式。
另请参阅
返回
StyleHint
。样式提示会影响
字体匹配算法 font
。有关可用提示的列表,请参阅StyleHint
。- styleName()#
- 返回类型:
字符串
返回请求的字体样式名称。这可以用于匹配不规则样式(不能在其他的样式属性中进行标准化)。
返回
StyleStrategy
。样式策略会影响
字体匹配
算法。有关可用策略的列表,请参阅StyleStrategy
。- 静态substitute(arg__1)#
- 参数:
arg__1 – str
- 返回类型:
字符串
当指定
familyName
时,返回将首先使用的第一个家族名称。搜索不区分大小写。如果没有为
familyName
提供替换项,则返回familyName
。要获取替换项列表,请使用
substitutes()
。- 静态substitutes(arg__1)#
- 参数:
arg__1 – str
- 返回类型:
字符串列表
返回在任何指定
familyName
时应使用的家族名称列表。搜索不区分大小写。如果没有为
familyName
提供替换项,则返回空列表。- 静态substitutions()#
- 返回类型:
字符串列表
返回替换后的家族名称的排序列表。
与
other
交换字体实例。此函数非常快且永远不会失败。- toString()#
- 返回类型:
字符串
返回字体的描述。描述是属性的逗号分隔列表,非常适合在 QSettings 中使用,包含以下内容
字体家族
点大小
像素大小
样式提示
字体粗细
字体样式
下划线
删除线
固定间距
始终 0
大小写
字母间距
单词间距
拉伸
样式策略
字体样式(不可用时不包含)
另请参阅
- underline()#
- 返回类型:
bool
如果设置了下划线,返回
true
;否则返回false
。另请参阅
- unsetFeature(tag)#
- 参数:
tag –
Tag
这是一个重载函数。
从启用/禁用功能映射中删除
tag
。注意
即使之前未添加功能,这也将在本
QFont
中将字体功能映射标记为修改,以便在与其他字体解决冲突时具有优先级。取消设置
QFont
上的现有功能将行为重置为默认。有关字体特征的更多详细信息,请参阅
setFeature()
。- unsetVariableAxis(tag)#
- 参数:
tag –
Tag
取消设置之前由
tag
给定的可变轴值。- variableAxisTags()#
- 返回类型:
QFont.Tag列表示例
返回此
QFont
上所有已设置变量轴的标签列表。有关变量轴的更多详细信息,请参阅
setVariableAxis()
。- variableAxisValue(tag)#
- 参数:
tag –
Tag
- 返回类型:
float
返回为特定变量轴
tag
设置的值。如果未设置标签,则返回0.0。有关变量轴的更多详细信息,请参阅
setVariableAxis()
。返回字体的重量,使用与
Weight
枚举相同的刻度。另请参阅
- wordSpacing()#
- 返回类型:
float
返回字体的单词间隔。