QFont

一、描述

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

  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值