成员功能文档
QFont::QFont()
构造使用应用程序默认字体的字体对象。
另请参阅 QGuiApplication::setFont() 和QGuiApplication::font()。
QFont::QFont(const QFont &font, const QPaintDevice *pd)
从font 构建字体,供绘画设备pd 使用。
QFont::QFont(const QString &family, int pointSize = -1, int weight = -1, bool italic = false)
使用指定的family 、pointSize 、weight 和italic 设置构建字体对象。
如果pointSize 为零或负数,字体的点大小将设置为与系统相关的默认值。一般情况下,默认值为 12 点。
family 名称还可选择包含代工厂名称,如 "Helvetica [Cronyx]"。如果family 有一个以上的代工厂,且未指定代工厂,则任意选择一个代工厂。如果没有可用的族,将使用font matching 算法设置一个族。
这将以逗号分割族字符串,并调用setFamilies() 得到结果列表。要保留名称中使用逗号的字体,请使用包含QStringList 的构造函数。
另请参见 Weight,setFamily(),setPointSize(),setWeight(),setItalic(),setStyleHint(),setFamilies(), 和QGuiApplication::font().
[explicit] QFont::QFont(const QStringList &families, int pointSize = -1, int weight = -1, bool italic = false)
使用指定的families 、pointSize 、weight 和italic 设置构建字体对象。
如果pointSize 为零或负数,字体的点大小将设置为与系统相关的默认值。一般为 12 点。
families 中的每个族名条目还可选择包含代工厂名称,如 "Helvetica [Cronyx]"。如果有一个以上的字体代工厂提供该族,但未指定代工厂,则任意选择一个代工厂。如果没有可用的族,则将使用font matching 算法设置一个族。
另请参阅 Weight,setPointSize(),setWeight(),setItalic(),setStyleHint(),setFamilies(), 和QGuiApplication::font().
QFont::QFont(const QFont &font)
构造一种字体,它是font 的副本。
[noexcept] QFont::~QFont()
销毁字体对象并释放所有已分配的资源。
bool QFont::bold() const
如果weight() 的值大于QFont::Medium ,则返回true ;否则返回false 。
另请参见 weight()、setBold() 和QFontInfo::bold()。
QFont::Capitalization QFont::capitalization() const
返回字体的当前大写类型。
另请参阅 setCapitalization()。
[since 6.7] void QFont::clearFeatures()
清除QFont 上先前设置的任何特征。
有关字体特征的更多详情,请参阅setFeature() 。
此函数在 Qt 6.7 中引入。
另请参阅 QFont::Tag,setFeature(),unsetFeature(),featureTags() 和featureValue() 。
[since 6.7] void QFont::clearVariableAxes()
清除QFont 上先前设置的任何可变轴值。
有关可变轴的更多详情,请参阅setVariableAxis() 。
此函数在 Qt 6.7 中引入。
另请参阅 QFont::Tag,setVariableAxis(),unsetVariableAxis(),isVariableAxisSet() 和variableAxisValue() 。
QString QFont::defaultFamily() const
返回与当前样式提示相对应的族名。
另请参阅 StyleHint,styleHint() 和setStyleHint()。
bool QFont::exactMatch() const
如果存在与该字体设置完全匹配的窗口系统字体,则返回true 。
另请参阅 QFontInfo 。
QStringList QFont::families() const
返回请求的字体族名称,即最后一次调用setFamilies() 或通过构造函数设置的名称。否则返回空列表。
另请参见 setFamily()、setFamilies()、family()、substitutes() 和substitute()。
QString QFont::family() const
返回请求的字体族名称。它将始终与families() 调用中的第一个条目相同。
另请参阅 setFamily()、substitutes()、substitute()、setFamilies() 和families()。
[since 6.7] QList
返回当前在QFont 上设置的所有字体特征的标记列表。
有关字体特性的更多详情,请参阅setFeature() 。
此函数在 Qt 6.7 中引入。
另请参阅 QFont::Tag,setFeature(),unsetFeature(),isFeatureSet() 和clearFeatures() 。
[since 6.7] quint32 QFont::featureValue(QFont::Tag tag) const
返回为特定特征设置的值tag 。如果未设置标签,则返回 0。
有关字体特征的更多详情,请参阅setFeature() 。
此函数在 Qt 6.7 中引入。
另请参阅 QFont::Tag,setFeature(),unsetFeature(),featureTags() 和isFeatureSet() 。
bool QFont::fixedPitch() const
如果已设置固定间距,则返回true ;否则返回false 。
另请参见 setFixedPitch() 和QFontInfo::fixedPitch()。
bool QFont::fromString(const QString &descrip)
设置该字体以匹配descrip 的描述。描述是以逗号分隔的字体属性列表,由toString() 返回。
另请参阅 toString()。
QFont::HintingPreference QFont::hintingPreference() const
返回使用该字体渲染的字形的当前首选提示级别。
另请参阅 setHintingPreference()。
[static] void QFont::insertSubstitution(const QString &familyName, const QString &substituteName)
将substituteName 插入familyName 族的替换表中。
替换字体后,通过销毁和重新创建所有QFont 对象来触发字体更新。
另请参阅 insertSubstitutions()、removeSubstitutions()、substitutions()、substitute() 和substitutes()。
[static] void QFont::insertSubstitutions(const QString &familyName, const QStringList &substituteNames)
将substituteNames 系列列表插入familyName 的替换列表。
替换字体后,通过销毁和重新创建所有QFont 对象来触发字体更新。
另请参阅 insertSubstitution()、removeSubstitutions()、substitutions() 和substitute()。
bool QFont::isCopyOf(const QFont &f) const
如果该字体和f 是彼此的副本,即其中一个字体是作为另一个字体的副本创建的,并且此后都没有修改过,则返回true 。这比相等严格得多。
另请参见 operator=() 和operator==()。
[since 6.7] bool QFont::isFeatureSet(QFont::Tag tag) const
如果tag 给定的特征值已在QFont 上设置,则返回 true,否则返回 false。
有关字体特征的更多详情,请参阅setFeature() 。
此函数在 Qt 6.7 中引入。
另请参阅 QFont::Tag,setFeature(),unsetFeature(),featureTags() 和featureValue() 。
[since 6.7] bool QFont::isVariableAxisSet(QFont::Tag tag) const
如果tag 给定的变量轴的值已在QFont 上设置,则返回 true,否则返回 false。
有关字体变轴的更多详情,请参阅setVariableAxis() 。
此函数在 Qt 6.7 中引入。
另请参阅 QFont::Tag,setVariableAxis(),unsetVariableAxis(),variableAxisValue() 和clearVariableAxes().
bool QFont::italic() const
如果字体的style() 不是true ,则返回 。QFont::StyleNormal
另请参阅 setItalic() 和style()。
bool QFont::kerning() const
如果在使用该字体绘制文本时要使用分隔符,则返回true 。
另请参阅 setKerning().
QString QFont::key() const
返回字体的键,即字体的文本表示。它通常用作字体缓存或字典的键。
另请参阅 QMap 。
qreal QFont::letterSpacing() const
返回字体的字母间距。
另请参阅 setLetterSpacing()、letterSpacingType() 和setWordSpacing()。
QFont::SpacingType QFont::letterSpacingType() const
返回字母间距使用的间距类型。
另请参阅 letterSpacing()、setLetterSpacing() 和setWordSpacing()。
bool QFont::overline() const
如果设置了换行,则返回true ;否则返回false 。
另请参阅 setOverline() 。
int QFont::pixelSize() const
如果字体大小是通过setPixelSize() 设置的,则返回字体的像素大小。如果字体大小是通过setPointSize() 或setPointSizeF() 设置的,则返回-1。
另请参阅 setPixelSize()、pointSize()、QFontInfo::pointSize() 和QFontInfo::pixelSize()。
int QFont::pointSize() const
返回字体的点大小。如果字体大小以像素为单位,则返回-1。
另请参阅 setPointSize() 和pointSizeF()。
qreal QFont::pointSizeF() const
返回字体的点大小。如果字体大小以像素为单位,则返回-1。
另请参阅 pointSize()、setPointSizeF()、pixelSize()、QFontInfo::pointSize() 和QFontInfo::pixelSize()。
[static] void QFont::removeSubstitutions(const QString &familyName)
删除familyName 的所有替换。
另请参见 insertSubstitutions()、insertSubstitution()、substitutions() 和substitute()。
QFont QFont::resolve(const QFont &other) const
返回一个新的QFont ,其中的属性是从other 复制而来,该字体之前未设置过这些属性。
void QFont::setBold(bool enable)
如果enable 为 true,则将字体的权重设置为QFont::Bold ;否则将权重设置为QFont::Normal 。
如需更精细的粗细控制,请使用setWeight() 。
注意: 如果设置了styleName(),该值可能会被忽略,或者如果平台支持,字体会被人为加粗。
另请参阅 bold() 和setWeight()。
void QFont::setCapitalization(QFont::Capitalization caps)
将该字体文本的大小写设置为caps 。
字体的大小写使文本以选定的大小写模式显示。
另请参阅 capitalization() 。
void QFont::setFamilies(const QStringList &families)
设置字体的族名列表。这些名称不区分大小写,可能包括铸造厂名称。families 中的第一个族将被设置为字体的主族。
families 中的每个族名还可选择包含一个铸造厂名称,例如 "Helvetica [Cronyx]"。如果有一个以上的字体代工厂提供该族,但未指定代工厂,则会任意选择一个代工厂。如果没有可用的族,则将使用font matching 算法设置一个族。
另请参阅 family(),families(),setFamily(),setStyleHint() 和QFontInfo 。
void QFont::setFamily(const QString &family)
设置字体的族名。该名称不区分大小写,可包含代工厂名称。
family 名称也可选择包含代工厂名称,如 "Helvetica [Cronyx]"。如果family 可从一个以上的代工厂获得,且未指定代工厂,则任意选择一个代工厂。如果没有可用的族,将使用font matching 算法设置一个族。
另请参阅 family(),setStyleHint(),setFamilies(),families() 和QFontInfo 。
[since 6.7] void QFont::setFeature(QFont::Tag tag, quint32 value)
这是一个重载函数。
在塑造文本时,将一个整数值应用到tag 指定的字体特征。这提供了对字体整形过程的高级访问,可用于支持 API 未涵盖的字体特征。
该特征由tag 指定,通常由字体特征图中的四字符特征名称编码而成。
在大多数情况下,与标签一起传递的这个整数value 代表一个布尔值:零值表示禁用该特征,非零值表示启用该特征。但对于某些字体特征,它可能有其他解释。例如,当应用于salt 功能时,该值是一个索引,用于指定要使用的替代样式。
例如,frac 字体功能会将用斜线分隔的对角线分数(如1/2 )转换为不同的表示方法。通常情况下,这需要将完整的分数转换为单个字符宽度(如½ )。
如果字体支持frac 功能,则可以通过在字体特征图中设置features["frac"] = 1 ,在整形器中启用该功能。
注: 默认情况下,Qt 将根据其他字体属性启用或禁用某些字体功能。特别是,kern 功能的启用/禁用将取决于QFont 的kerning() 属性。此外,如果应用了letterSpacing() ,所有连字功能(liga,clig,dlig,hlig )都将禁用,但仅适用于不需要使用连字的书写系统。对于需要使用连字符的书写系统,这些功能将保持默认状态。使用 setFeature() 和相关函数设置的值将覆盖默认行为。例如,如果将 "kern "特性设置为 1,那么无论 "kerning "属性是否设置为 false,都将始终启用 "kerning"。同样,如果将其设置为 0,则将始终禁用。要将字体功能重置为默认行为,可以使用unsetFeature() 取消设置。
此函数在 Qt 6.7 中引入。
另请参阅 QFont::Tag 、clearFeatures()、setFeature()、unsetFeature() 和featureTags()。
void QFont::setFixedPitch(bool enable)
如果enable 为 true,则开启固定螺距;否则关闭固定螺距。
另请参阅 fixedPitch() 和QFontInfo 。
void QFont::setHintingPreference(QFont::HintingPreference hintingPreference)
将字形的提示级别首选项设置为hintingPreference 。这是对底层字体渲染系统的一种提示,要求其使用一定级别的提示,不同平台的支持情况各不相同。详情请参见QFont::HintingPreference 文档中的表格。
默认的提示首选项是QFont::PreferDefaultHinting 。
另请参阅 hintingPreference().
void QFont::setItalic(bool enable)
如果enable 为 true,则将字体的style() 设置为QFont::StyleItalic ;否则,将字体样式设置为QFont::StyleNormal 。
注: 如果设置了styleName(),该值可能会被忽略,或者如果平台支持,字体可能会倾斜渲染,而不是选择设计的斜体字体变量。
另请参阅 italic() 和QFontInfo 。
void QFont::setKerning(bool enable)
如果enable 为 true,则启用该字体的分色;否则禁用。默认情况下,启用字形分辨。
启用分隔后,即使是拉丁文本,字形度量值也不会再相加。换句话说,width('a') + width('b') 等于 width("ab") 的假设并不一定成立。
另请参见 kerning() 和QFontMetrics 。
void QFont::setLetterSpacing(QFont::SpacingType type, qreal spacing)
将字体的字母间距设置为spacing ,间距类型设置为type 。
字母间距更改字体中单个字母之间的默认间距。根据所选的间距类型,字母间距既可以变小,也可以变大,可以是字符宽度的百分比,也可以是像素。
另请参阅 letterSpacing()、letterSpacingType() 和setWordSpacing()。
void QFont::setOverline(bool enable)
如果enable 为 true,则开启叠加线;否则关闭叠加线。
另请参阅 overline() 和QFontInfo 。
void QFont::setPixelSize(int pixelSize)
将字体大小设置为pixelSize 像素,最大字体大小为无符号 16 位整数。
使用该函数会使字体依赖于设备。请使用setPointSize() 或setPointSizeF() 以独立于设备的方式设置字体大小。
另请参阅 pixelSize()。
void QFont::setPointSize(int pointSize)
将点尺寸设置为pointSize 。点尺寸必须大于零。
另请参阅 pointSize() 和setPointSizeF()。
void QFont::setPointSizeF(qreal pointSize)
将点尺寸设置为pointSize 。点尺寸必须大于零。要求的精度可能无法在所有平台上实现。
另请参阅 pointSizeF()、setPointSize() 和setPixelSize()。
void QFont::setStretch(int factor)
设置字体的拉伸因子。
拉伸因子匹配字体的压缩或扩展版本,或应用拉伸变换,将字体中所有字符的宽度改变factor %。例如,将factor 设置为 150 会使字体中所有字符的宽度增加 1.5 倍(即 150%)。最小拉伸因子为 1,最大拉伸因子为 4000。默认的拉伸因数是AnyStretch ,它接受任何拉伸因数,不会对字体应用任何变换。
拉伸因子只应用于轮廓字体。位图字体将忽略拉伸因数。
注意: 在匹配具有本地非默认拉伸因数的字体时,请求拉伸 100 将把字体拉伸回中等宽度字体。
另请参阅 stretch() 和QFont::Stretch 。
void QFont::setStrikeOut(bool enable)
如果enable 为 true,则设置 strikeout on;否则设置 strikeout off。
另请参阅 strikeOut() 和QFontInfo 。
void QFont::setStyle(QFont::Style style)
将字体样式设置为style 。
另请参阅 style(),italic() 和QFontInfo 。
void QFont::setStyleHint(QFont::StyleHint hint, QFont::StyleStrategy strategy = PreferDefault)
将样式提示和策略分别设置为hint 和strategy 。
如果没有明确设置,则默认样式提示为AnyStyle ,样式策略为PreferDefault 。
Qt 不支持 X11 上的样式提示,因为窗口系统不提供此类信息。
另请参阅 StyleHint,styleHint(),StyleStrategy,styleStrategy(), 和QFontInfo 。
void QFont::setStyleName(const QString &styleName)
将字体的样式名称设置为styleName 。设置后,其他样式属性(如style() 和weight() )将在字体匹配中被忽略,但如果平台的字体引擎支持,它们可能会被模拟。
由于人工模拟的样式质量较低,而且缺乏全面的跨平台支持,因此不建议同时使用样式名称匹配和样式属性匹配。
另请参阅 styleName()。
void QFont::setStyleStrategy(QFont::StyleStrategy s)
将字体的样式策略设置为s 。
另请参阅 styleStrategy() 和QFont::StyleStrategy 。
void QFont::setUnderline(bool enable)
如果enable 为 true,则打开下划线;否则关闭下划线。
另请参阅 underline() 和QFontInfo 。
[since 6.7] void QFont::setVariableAxis(QFont::Tag tag, float value)
将value 应用于与tag 对应的变量轴。
可变字体提供了一种在同一字体文件中存储多种变化(具有不同重量、宽度或样式)的方法。这些变化以浮点数值的形式给出,用于一组预定义的参数,称为 "变量轴"。具体实例通常由字体设计者命名,在 Qt XML 中,可以使用setStyleName() 选择这些实例,就像传统的子字库一样。
在某些情况下,为不同轴提供任意值也很有用。例如,如果一种字体有普通和粗体两个子字体,您可能需要一个介于这两种字体之间的权重。这时,您可以通过为字体中的 "wght "轴提供自定义值来手动实现这一要求。
QFont font;
font.setVariableAxis("wght", (QFont::Normal + QFont::Bold) / 2.0f);
如果字体支持 "wght "轴,且给定值在其定义范围内,则将提供与权重 550.0 相对应的字体。
许多字体都提供一些标准轴,如 "wght"(重量)、"wdth"(宽度)、"ital"(斜体)和 "opsz"(光学尺寸)。字体本身定义了它们各自的范围。例如,"wght "可以从 100 到 900(QFont::Thin 到QFont::Black ),而 "ital "可以从 0 到 1(从非斜体到完全斜体)。
字体也可以选择定义自定义轴;唯一的限制是名称必须符合QFont::Tag (四个拉丁-1 字符的序列)的要求。
默认情况下,不设置可变轴。
注意: 在 Windows 系统中,如果使用了可选的 GDI 字体后端,则不支持可变轴。
此函数在 Qt 6.7 中引入。
另请参阅 unsetVariableAxis 。
void QFont::setWeight(QFont::Weight weight)
使用QFont::Weight 枚举定义的比例,将字体的权重设置为weight 。
注: 如果设置了styleName(),则在选择字体时可以忽略此值。
另请参阅 weight() 和QFontInfo 。
void QFont::setWordSpacing(qreal spacing)
将字体的字间距设置为spacing 。
字间距更改单个字之间的默认间距。正值会相应增加字间距的像素数,而负值则会相应减少字间距。
单词间距不适用于书写系统,因为在书写系统中,单个单词之间没有空白分隔。
另请参阅 wordSpacing() 和setLetterSpacing()。
int QFont::stretch() const
返回字体的拉伸因子。
另请参见 setStretch()。
bool QFont::strikeOut() const
如果设置了 strikeout,则返回true ;否则返回false 。
另请参见 setStrikeOut() 。
QFont::Style QFont::style() const
返回字体的样式。
另请参见 setStyle()。
QFont::StyleHint QFont::styleHint() const
返回StyleHint 。
样式提示会影响font matching algorithm 。可用提示列表请参见QFont::StyleHint 。
另请参阅 setStyleHint(),QFont::StyleStrategy, 和QFontInfo::styleHint().
QString QFont::styleName() const
返回请求的字体样式名称。这可用于匹配不规则样式(无法在其他样式属性中规范化)的字体。
另请参阅 setStyleName()、setFamily() 和setStyle()。
QFont::StyleStrategy QFont::styleStrategy() const
返回StyleStrategy 。
样式策略会影响font matching 算法。有关可用策略的列表,请参见QFont::StyleStrategy 。
另请参阅 setStyleStrategy(),setStyleHint() 和QFont::StyleHint 。
[static] QString QFont::substitute(const QString &familyName)
返回在指定familyName 时使用的第一个族名。查询不区分大小写。
如果familyName 没有替代项,则返回familyName 。
要获取替换列表,请使用substitutes() 。
另请参阅 setFamily()、insertSubstitutions()、insertSubstitution() 和removeSubstitutions()。
[static] QStringList QFont::substitutes(const QString &familyName)
返回在指定familyName 时使用的族名列表。查找不区分大小写。
如果familyName 没有替换,则返回空列表。
另请参阅 substitute()、insertSubstitutions()、insertSubstitution() 和removeSubstitutions()。
[static] QStringList QFont::substitutions()
返回已替换姓氏的排序列表。
另请参阅 insertSubstitution()、removeSubstitutions() 和substitute()。
[noexcept] void QFont::swap(QFont &other)
将此字体实例与other 互换。该操作速度非常快,从未出现过故障。
QString QFont::toString() const
返回字体的描述。该描述是以逗号分隔的属性列表,非常适合在QSettings 中使用,包括以下内容:
字体系列
点大小
像素大小
样式提示
字体重量
字体样式
下划线
删除
固定间距
始终为0
大写
字母间距
单词间距
拉伸
样式策略
字体样式(不可用时省略)
另请参阅 fromString().
bool QFont::underline() const
如果已设置下划线,则返回true ;否则返回false 。
另请参阅 setUnderline() 。
[since 6.7] void QFont::unsetFeature(QFont::Tag tag)
这是一个重载函数。
从明确启用/禁用的特征映射中取消设置tag 。
注意: 即使之前未添加该特征,也会在此QFont 中将字体特征映射标记为已修改,因此在与其他字体进行解析时将优先使用。
在QFont 上取消设置现有特征会将行为还原为默认行为。
有关字体特征的更多详情,请参阅setFeature() 。
此函数在 Qt 6.7 中引入。
另请参阅 QFont::Tag,clearFeatures(),setFeature(),featureTags() 和featureValue() 。
[since 6.7] void QFont::unsetVariableAxis(QFont::Tag tag)
取消tag 先前设置的变轴值。
注意: 如果之前没有为该标记赋值,则QFont 在与其他QFont 值进行解析时,仍会将其变轴视为已设置。
此函数在 Qt 6.7 中引入。
另请参阅 setVariableAxis 。
[since 6.7] QList
返回当前在此QFont 上设置的所有变量轴的标记列表。
有关变量轴的更多详情,请参阅setVariableAxis() 。
此函数在 Qt 6.7 中引入。
另请参阅 QFont::Tag,setVariableAxis(),unsetVariableAxis(),isVariableAxisSet() 和clearVariableAxes() 。
[since 6.7] float QFont::variableAxisValue(QFont::Tag tag) const
返回为特定变量轴tag 设置的值。如果未设置标签,则将返回 0.0。
有关变量轴的更多详情,请参阅setVariableAxis() 。
此函数在 Qt 6.7 中引入。
另请参阅 QFont::Tag,setVariableAxis(),unsetVariableAxis(),isVariableAxisSet() 和clearVariableAxes() 。
QFont::Weight QFont::weight() const
使用与QFont::Weight 枚举相同的比例返回字体的权重。
另请参阅 setWeight(),Weight, 和QFontInfo 。
qreal QFont::wordSpacing() const
返回字体的字间距。
另请参阅 setWordSpacing() 和setLetterSpacing()。
QVariant QFont::operator QVariant() const
返回字体的QVariant
bool QFont::operator!=(const QFont &f) const
如果该字体与f 不同,则返回true ;否则返回false 。
如果两个 QFonts 的字体属性不同,则视为不同。
另请参阅 operator==() 。
bool QFont::operator<(const QFont &f) const
提供该字体与f 字体的任意比较。如果两种字体相等,运算符返回false ;如果两种字体不相等,运算符返回 (f1 < f2) == !(f2 < f1)。
该函数在某些情况下非常有用,例如,如果您想将QFont 对象用作QMap 中的键。
另请参阅 operator==(),operator!=() 和isCopyOf()。
[noexcept] QFont &QFont::operator=(QFont &&other)
Move-assignsother 到此QFont 实例。
QFont &QFont::operator=(const QFont &font)
为该字体指定font 并返回其引用。
bool QFont::operator==(const QFont &f) const
如果该字体等于f ,则返回true ;否则返回 false。
如果两个 QFonts 的字体属性相等,则视为相等。
另请参阅 operator!=() 和isCopyOf()。