一、描述
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的设置改变后哈希值跟着变化)