【QT】QT字体详解

本文完全转载自:

【QT】QT字体详解_GLL_的博客-CSDN博客_qt字体

本来只想留个连接方便日后查阅,但发文助手不允许,所以把内容复制一遍

1、综述

首先看看QT官方的帮助文档:

QFont类指定用于图形文本的字体。
创建QFont对象时,您可以指定希望字体具有的各种属性。Qt将使用具有指定属性的字体,或者如果不存在匹配字体,Qt将使用最接近的匹配安装字体。实际使用的字体属性可从QFontInfo对象中检索。如果窗口系统提供精确匹配,则exactMatch ( )返回true。使用QFontMetrics获取度量值,例如使用QFontMetrics : : width ( )的字符串的像素长度。
请注意,QGuiApplication实例必须存在,才能使用QFont。您可以使用QGuiApplication : : setFont ( )设置应用程序的默认字体。
如果所选字体不包括需要显示的所有字符,QFont将尝试查找最接近的等效字体中的字符。当qpinter从字体中绘制字符时,QFont将报告其是否具有该字符;否则,QPainter将绘制一个未填充的正方形。
头文件是QFont

QFont相关

QFont 为绘画文本提供制定的字体
QFontComboBox 提供了选择字体族的下拉列表框
QFontDatabase 提供了可以在Window 操作系统下能够使用的字体
QFontDialog 用来选择一个指定的字体
QFontEngineInfo 用来描述一个指定的字体引擎插件
QFontEnginePlugin 累提供了字体仓库插件的基础累, 用于嵌入式linux
QFontInfo 包含了一个字体的常规信息
QFontDialog 用来弹出对话框 来获得指定的字体
 

2、实例


QFont的实际使用:
在QFont当中有两种方式设置字体大小,一种是setPixelSize,另一种是setPointSize
setPixelSize()函数使用像素作为单位来设置字体大小
setPointSize()函数规定了实际中我们肉眼看到的字体的大小,与像素无关
也就是说
使用setPixelSize函数设置大小,在像素大小不同的设备上显示的大小也不同
使用setPointSize函数设置大小,在不同设备上显示的大小是相同的

 
  1. //设置全局字体

  2. QFont font;

  3. font.setFamily("MS Shell Dlg 2"); // Tahoma 宋体

  4. qApp->setFont(font);

  5. 检测全局字体:

  6. qDebug() << qApp->font().rawName();

  7. qDebug() << qApp->font().family();

  8. qDebug() << qApp->font().defaultFamily();

  9. qDebug() << qApp->font().styleName();

  10. qDebug() << qApp->font().toString();

  11. qDebug() << qApp->font().key();

  12. //qt设置字体:

  13. //第一个参数是字体(微软雅黑),第二个是字体大小(单位为pt),第三个是加粗(50代表正常),第四个是斜体(true代表斜体)

  14. QFont font("Microsoft YaHei", 8, 50, true);

  15. ui->box->setFont(font);

  16. //或者

  17. QFont font("Microsoft YaHei", 8, 50);//第一个参数是字体(微软雅黑),第二个是字体大小,第三个是加粗(50代表正常)

  18. font.setItalic(true);//斜体

  19. ui->box->setFont(font);

  20. //又或者

  21. QFont font(QString::fromLocal8Bit("微软雅黑"), 9);

  22. ui->box->setFont(font);

  23. 字体属性可以传递:

  24. QFont newfont;

  25. newfont = QFont("Microsoft YaHei", 8, 50);

  26. 或者

  27. QFont font("微软雅黑",10);

  28. newfont = font;

  29. //将字体设为QApplication默认字体

  30. QApplication::setFont(font);

对于UI控件:例如label、button,还可以在UI界面键入文字
label等控件还可以在UI属性页采用HTML格式输入:

HTML代码如下:

<html><head/><body><p align="center"><span style=" font-size:18pt; color:#008000;">你要显示的内容</span></p></body></html>  

如此一来,就可以很方便的编辑了:
左键双击label即可弹出编辑框,如图:

可以对文字大小、对齐方式、字体颜色等进行设置,并且可以插入图片、连接。

当然,也可以直接在设计师界面设置字体样式:
QT设计师界面设置字体

实际使用中,有时候我们控件中的字体是控件出现之后设置上去的,想设置这种字体颜色,怎么办呢:

 
  1. QPalette palette;

  2. palette.setColor(QPalette::WindowText,Qt::red);

  3. ui->label_CurrentTime->setPalette(palette); //这里设置控件字体颜色

  4. ui->label_CurrentTime->setText(StrCurrentTime);//附加文本显示为上面设置的红色

tips:在开发板上运行Qt程序时,很多时候我们对字体的设置并没有效果,这是因为开发板上的字体依赖于字库,我们要把对应字库移植到开发板指定位置,如:

然后,在运行程序时,指定字体,如:./test -font wenquanyi -qws
如果设置无效,可以将其他字体删除,然后./test -qws,

3、QT字体综述:

 
  1. Qt 支持的中文字体的名称

  2. “Arial Unicode MS”

  3. “Fixedsys”

  4. “SimSun-ExtB”

  5. “System”

  6. “Terminal”

  7. “仿宋”

  8. “华文中宋”

  9. “华文仿宋”

  10. “华文宋体”

  11. “华文彩云”

  12. “华文新魏”

  13. “华文楷体”

  14. “华文琥珀”

  15. “华文细黑”

  16. “华文行楷”

  17. “华文隶书”

  18. “宋体”

  19. “幼圆”

  20. “微软雅黑”

  21. “新宋体”

  22. “方正姚体”

  23. “方正舒体”

  24. “楷体”

  25. “隶书”

  26. “黑体”

  27. 代码:

  28. {

  29. QFontDatabase database;

  30. foreach(const QString &family, database.families(QFontDatabase::SimplifiedChinese))

  31. {

  32. qDebug() << family;

  33. }

  34. }

  35. 以上这段代码就可以枚举出系统中所有支持中文的字体名称。

  36. Qt支持的其他字体的名称

  37. “Aharoni”

  38. “Andalus”

  39. “Angsana New”

  40. “AngsanaUPC”

  41. “Aparajita”

  42. “Arabic Typesetting”

  43. “Arial”

  44. “Arial Black”

  45. “Arial Narrow”

  46. “Arial Unicode MS”

  47. “Batang”

  48. “BatangChe”

  49. “Book Antiqua”

  50. “Bookman Old Style”

  51. “Bookshelf Symbol 7”

  52. “Browallia New”

  53. “BrowalliaUPC”

  54. “Calibri”

  55. “Calibri Light”

  56. “Cambria”

  57. “Cambria Math”

  58. “Candara”

  59. “Century”

  60. “Century Gothic”

  61. “Comic Sans MS”

  62. “Consolas”

  63. “Constantia”

  64. “Corbel”

  65. “Cordia New”

  66. “CordiaUPC”

  67. “Courier”

  68. “Courier New”

  69. “DaunPenh”

  70. “David”

  71. “DFKai-SB”

  72. “DilleniaUPC”

  73. “DokChampa”

  74. “Dotum”

  75. “DotumChe”

  76. “Ebrima”

  77. “Estrangelo Edessa”

  78. “EucrosiaUPC”

  79. “Euphemia”

  80. “Fixedsys”

  81. “Franklin Gothic Medium”

  82. “FrankRuehl”

  83. “FreesiaUPC”

  84. “Gabriola”

  85. “Garamond”

  86. “Gautami”

  87. “Georgia”

  88. “Gisha”

  89. “Gulim”

  90. “GulimChe”

  91. “Gungsuh”

  92. “GungsuhChe”

  93. “Impact”

  94. “IrisUPC”

  95. “Iskoola Pota”

  96. “JasmineUPC”

  97. “Kalinga”

  98. “Kartika”

  99. “Khmer UI”

  100. “KodchiangUPC”

  101. “Kokila”

  102. “Lao UI”

  103. “Latha”

  104. “Leelawadee”

  105. “Levenim MT”

  106. “LilyUPC”

  107. “Lucida Console”

  108. “Lucida Sans Unicode”

  109. “Malgun Gothic”

  110. “Mangal”

  111. “Marlett”

  112. “Meiryo”

  113. “Meiryo UI”

  114. “Microsoft Himalaya”

  115. “Microsoft JhengHei”

  116. “Microsoft New Tai Lue”

  117. “Microsoft PhagsPa”

  118. “Microsoft Sans Serif”

  119. “Microsoft Tai Le”

  120. “Microsoft Uighur”

  121. “Microsoft Yi Baiti”

  122. “MingLiU”

  123. “MingLiU-ExtB”

  124. “MingLiU_HKSCS”

  125. “MingLiU_HKSCS-ExtB”

  126. “Miriam”

  127. “Miriam Fixed”

  128. “Modern”

  129. “Mongolian Baiti”

  130. “Monotype Corsiva”

  131. “MoolBoran”

  132. “MS Gothic”

  133. “MS Mincho”

  134. “MS Outlook”

  135. “MS PGothic”

  136. “MS PMincho”

  137. “MS Reference Sans Serif”

  138. “MS Reference Specialty”

  139. “MS Sans Serif”

  140. “MS Serif”

  141. “MS UI Gothic”

  142. “MT Extra”

  143. “MV Boli”

  144. “Narkisim”

  145. “Nyala”

  146. “Palatino Linotype”

  147. “Plantagenet Cherokee”

  148. “PMingLiU”

  149. “PMingLiU-ExtB”

  150. “Raavi”

  151. “Rod”

  152. “Roman”

  153. “Sakkal Majalla”

  154. “Script”

  155. “Segoe Print”

  156. “Segoe Script”

  157. “Segoe UI”

  158. “Segoe UI Light”

  159. “Segoe UI Semibold”

  160. “Segoe UI Symbol”

  161. “Shonar Bangla”

  162. “Shruti”

  163. “Simplified Arabic”

  164. “Simplified Arabic Fixed”

  165. “SimSun-ExtB”

  166. “Small Fonts”

  167. “Sylfaen”

  168. “Symbol”

  169. “System”

  170. “Tahoma”

  171. “Terminal”

  172. “Times New Roman”

  173. “Traditional Arabic”

  174. “Trebuchet MS”

  175. “Tunga”

  176. “Utsaah”

  177. “Vani”

  178. “Verdana”

  179. “Vijaya”

  180. “Vrinda”

  181. “Webdings”

  182. “Wingdings”

  183. “Wingdings 2”

  184. “Wingdings 3”

  185. {

  186. QFontDatabase database;

  187. foreach(const QString &family, database.families())

  188. {

  189. qDebug() << family;

  190. }

  191. }

  192. 以上这段代码就可以枚举出系统支持的所有字体的名称;

  193. 中文字体名称对应的字体英文名称

  194. 宋体 SimSun

  195. 黑体 SimHei

  196. 微软雅黑 Microsoft YaHei

  197. 微软正黑体 Microsoft JhengHei

  198. 新宋体 NSimSun

  199. 新细明体 PMingLiU

  200. 细明体 MingLiU

  201. 标楷体 DFKai-SB

  202. 仿宋 FangSong

  203. 楷体 KaiTi

  204. 仿宋_GB2312 FangSong_GB2312

  205. 楷体_GB2312 KaiTi_GB2312

  206. 宋体:SimSuncss中中文字体(font-family)的英文名称

  207. Mac OS的一些:

  208. 华文细黑:STHeiti Light [STXihei]

  209. 华文黑体:STHeiti

  210. 华文楷体:STKaiti

  211. 华文宋体:STSong

  212. 华文仿宋:STFangsong

  213. 儷黑 Pro:LiHei Pro Medium

  214. 儷宋 Pro:LiSong Pro Light

  215. 標楷體:BiauKai

  216. 蘋果儷中黑:Apple LiGothic Medium

  217. 蘋果儷細宋:Apple LiSung Light

  218. Windows的一些:

  219. 新細明體:PMingLiU

  220. 細明體:MingLiU

  221. 標楷體:DFKai-SB

  222. 黑体:SimHei

  223. 新宋体:NSimSun

  224. 仿宋:FangSong

  225. 楷体:KaiTi

  226. 仿宋_GB2312:FangSong_GB2312

  227. 楷体_GB2312:KaiTi_GB2312

  228. 微軟正黑體:Microsoft JhengHei

  229. 微软雅黑体:Microsoft YaHei

  230. 装Office会生出来的一些:

  231. 隶书:LiSu

  232. 幼圆:YouYuan

  233. 华文细黑:STXihei

  234. 华文楷体:STKaiti

  235. 华文宋体:STSong

  236. 华文中宋:STZhongsong

  237. 华文仿宋:STFangsong

  238. 方正舒体:FZShuTi

  239. 方正姚体:FZYaoti

  240. 华文彩云:STCaiyun

  241. 华文琥珀:STHupo

  242. 华文隶书:STLiti

  243. 华文行楷:STXingkai

  244. 华文新魏:STXinwei

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值