一、描述

1、创建QFont对象时,可以指定希望字体具有的各种属性。Qt将使用具有指定属性的字体,或者如果不存在匹配的字体,Qt将使用最匹配的已安装字体。实际使用的字体属性可从 
QFontInfo 对象检索。使用 QFontMetricsF 获取测量值,例如,使用 QFontMetrics::width()获取字符串的像素长度。

2、要加载特定的物理字体(通常由单个文件表示),请改用 QRawFont。

3、必须存在 QGuiApplication 实例才能使用QFont。可以使用 QGuiApplication::setFont()设置应用程序的默认字体。

4、如果所选字体不包含需要显示的所有字符,QFont将尝试在最接近的等效字体中查找字符。当QPainter
从字体中绘制字符时,如果没有该字符,QPainter将绘制一个未填充的正方形。

5、加载字体的开销可能很昂贵。QFont包含大量的优化,可以快速复制QFont对象。

二、类型成员

1、QFont::Capitalization:字体大小写策略

* MixedCase:文本正常呈现,保持原样。
* AllUppercase:文本所有内容以大写呈现。
* AllLowercase:文本所有内容以小写呈现。
* SmallCaps:文本以大体小写呈现。

* Capitalize:每个单词的首字母以大写字母呈现。
2、QFont::SpacingType:间距类型

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

* AbsoluteSpacing:正值增加相应像素的字母间距;负值减小间距。(貌似值为间隔的像素值)

 3、QFont::Stretch:拉伸类型(拉伸因子)。遵循CSS命名约定的预定义拉伸值。值越高,文本的拉伸程度越大。(默认值是0)

* AnyStretch:0
* UltraCondensed:50
* ExtraCondensed:62
* Condensed:75
* SemiCondensed:87
* Unstretched:100
* SemiExpanded:112
* Expanded:125
* ExtraExpanded:150
* UltraExpanded:200

4、QFont::Style:字体样式。

* StyleNormal:正常。
* StyleItalic:斜体。
* StyleOblique:偏斜体。(没有斜体那么斜)
5、QFont::Weight:权重类型。Qt使用从0到99的加权比例,重量为0表示薄,而99表示极黑。

* Thin:0
* ExtraLight:12
* Light:25
* Normal:50
* Medium:57
* DemiBold:63
* Bold:75
* ExtraBold:81
* Black:87
三、成员函数

1、bool bold()

是否是加粗的。如果权重的值 >  QFont::Medium返回true,否则返回false。

2、QFont::Capitalization capitalization()

获取大小写策略。

3、QString defaultFamily() 

4、bool exactMatch()

如果与此字体的设置完全匹配的系统字体可用,则返回true。

5、bool fixedPitch()

是否设置了固定字体宽度。

6、bool isCopyOf(const QFont &f)

如果此字体和f是彼此的副本,即其中一个是作为另一个的副本创建的,并且此后都没有修改过,则返回true。

7、bool italic()

如果字体的字体风格不是QFont::StyleNormal,则返回true。(即是斜体)

8、bool kerning()

如果设置了使用紧排,则返回true。

9、qreal letterSpacing()

获取字母间距。

10、QFont::SpacingType letterSpacingType()

获取间距设置的类型。

11、bool overline()

是否设置了上划线。

12、int pixelSize()

* 如果字体是用setPixelSize()设置的,则返回字体的像素大小。
* 如果大小是用setPointSize()或setPointSizeF()设置的,则返回-1。
13、int pointSize()

返回字体的点大小。如果以像素为单位指定字体大小,则返回-1。

14、qreal pointSizeF()

返回字体的点大小。如果以像素为单位指定字体大小,则返回-1。

15、QFont resolve(const QFont &other)

返回一个新的QFont,该QFont包含从其他字体复制的属性。

16、void setBold(bool enable)

设置是否加粗,实际上是设置QFont::Bold和QFont::Normal。

19、void setItalic(bool enable)

设置是否使用斜体。实际上是设置QFont::StyleNormal / QFont::StyleItalic。

20、void setPixelSize(int pixelSize)

将字体大小设置为像素大小。使用此函数可使字体设备依赖(不同设备分辨率不同)。

21、void setPointSize(int pointSize)

设置字体的点大小。点大小必须大于零。

22、void setPointSizeF(qreal pointSize)

同上,但并非使用平台都支持此精度。

23、bool strikeOut()

是否设置了删除线。

24、bool underline()

是否设置了下划线。

25、qreal wordSpacing()

获取单词间的间距。

四、相关非成员函数

1、uint qHash(const QFont &font, uint seed = 0)

获取字体的哈希值。(QFont的设置改变后哈希值跟着变化)

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:766591547
关注微信