一、描述
1、创建QFont对象时,可以指定希望字体具有的各种属性。Qt将使用具有指定属性的字体,或者如果不存在匹配的字体,Qt将使用最匹配的已安装字体。实际使用的字体属性可从QFontInfo对象检索。使用QFontMetricsF获取测量值,例如,使用QFontMetrics::width()获取字符串的像素长度。
2、要加载特定的物理字体(通常由单个文件表示),请改用QRawFont。
3、QGuiApplication实例必须存在,才能使用QFont。可以使用QGuiApplication::setFont()设置应用程序的默认字体。
4、如果所选字体不包含需要显示的所有字符,QFont将尝试在最接近的等效字体中查找字符。当QPainter从字体中绘制字符时,QFont将报告它是否具有该字符;如果没有,QPainter将绘制一个未填充的正方形。
5、每个QFont都有一个key(),您可以使用它作为缓存或字典中的键。如果要存储用户的字体首选项,可以使用QSettings,用toString()写入字体信息,用fromString()读回。
6、加载字体的开销可能很昂贵。QFont包含大量的优化,可以快速复制QFont对象。
二、类型成员
1、QFont::Capitalization:字体大小写策略
- QFont::MixedCase:文本正常呈现,保持原样。
- QFont::AllUppercase:文本所有内容以大写呈现。
- QFont::AllLowercase:文本所有内容以小写呈现。
- QFont::SmallCaps:文本以大体小写呈现。
- QFont::Capitalize:每个单词的首字母以大写字母呈现。
2、QFont::SpacingType:间距类型
- QFont::PercentageSpacing:值100将保持间距不变;值200后将字符的间距扩大字符本身的宽度。
- QFont::AbsoluteSpacing:正值增加相应像素的字母间距;负值减小间距。(貌似值为间隔的像素值)
3、QFont::Stretch:拉伸类型(拉伸因子)。遵循CSS命名约定的预定义拉伸值。值越高,文本的拉伸程度越大。(默认值是0)
- QFont::AnyStretch:0
- 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
4、QFont::Style:字体样式。
- QFont::StyleNormal:正常。
- QFont::StyleItalic:斜体。
- QFont::StyleOblique:偏斜体。(没有斜体那么斜)
5、QFont::Weight:权重类型。Qt使用从0到99的加权比例,重量为0表示薄,而99表示极黑。
- QFont::Thin:0
- QFont::ExtraLight:12
- QFont::Light:25
- QFont::Normal:50
- QFont::Medium:57
- QFont::DemiBold:63
- QFont::Bold:75
- QFont::ExtraBold:81
- QFont::Black:87
三、成员函数
1、bool QFont::bold() const。是否是加粗的。如果权重的值 > QFont::Medium返回true,否则返回false。
2、QFont::Capitalization QFont::capitalization()。获取大小写策略。
3、QString QFont::defaultFamily() const。
4、bool QFont::exactMatch() const。如果与此字体的设置完全匹配的系统字体可用,则返回true。
5、bool QFont::fixedPitch() const。是否设置了固定字体宽度。
6、bool QFont::isCopyOf(const QFont &f) const。如果此字体和f是彼此的副本,即其中一个是作为另一个的副本创建的,并且此后都没有修改过,则返回true。
7、bool QFont::italic() const。如果字体的字体风格不是QFont::StyleNormal,则返回true。(即是斜体)
8、bool QFont::kerning() const。如果设置了使用紧排,则返回true。
9、qreal QFont::letterSpacing() const。获取字母间距。
10、QFont::SpacingType QFont::letterSpacingType() const。获取间距设置的类型。
11、bool QFont::overline() const。是否设置了上划线。
12、int QFont::pixelSize() const。如果字体是用setPixelSize()设置的,则返回字体的像素大小。如果大小是用setPointSize()或setPointSizeF()设置的,则返回-1。
13、int QFont::pointSize() const。返回字体的点大小。如果以像素为单位指定字体大小,则返回-1。
14、qreal QFont::pointSizeF() const。返回字体的点大小。如果以像素为单位指定字体大小,则返回-1。
15、QFont QFont::resolve(const QFont &other) const。返回一个新的QFont,该QFont包含从其他字体复制的属性。
16、void QFont::setBold(bool enable)。设置是否加粗,实际上是设置QFont::Bold和QFont::Normal。
19、void QFont::setItalic(bool enable)。设置是否使用斜体。实际上是设置QFont::StyleNormal / QFont::StyleItalic。
20、void QFont::setPixelSize(int pixelSize)。将字体大小设置为像素大小。使用此函数可使字体设备依赖(不同设备分辨率不同)。
21、void QFont::setPointSize(int pointSize)。设置字体的点大小。点大小必须大于零。
22、void QFont::setPointSizeF(qreal pointSize)。同上,但并非使用平台都支持此精度。
23、bool QFont::strikeOut() const。是否设置了删除线。
24、void QFont::underline(bool enable)。是否设置了下划线。
25、qreal QFont::wordSpacing() const。获取单词间的间距。
四、相关非成员函数
uint qHash(const QFont &font, uint seed = 0)。获取字体的哈希值。(QFont的设置改变后哈希值跟着变化)