QFont详解

一、描述

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

猜你喜欢

转载自blog.csdn.net/kenfan1647/article/details/115104479