本文完全转载自:
【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函数设置大小,在不同设备上显示的大小是相同的
-
//设置全局字体 -
QFont font; -
font.setFamily("MS Shell Dlg 2"); // Tahoma 宋体 -
qApp->setFont(font); -
检测全局字体: -
qDebug() << qApp->font().rawName(); -
qDebug() << qApp->font().family(); -
qDebug() << qApp->font().defaultFamily(); -
qDebug() << qApp->font().styleName(); -
qDebug() << qApp->font().toString(); -
qDebug() << qApp->font().key(); -
//qt设置字体: -
//第一个参数是字体(微软雅黑),第二个是字体大小(单位为pt),第三个是加粗(50代表正常),第四个是斜体(true代表斜体) -
QFont font("Microsoft YaHei", 8, 50, true); -
ui->box->setFont(font); -
//或者 -
QFont font("Microsoft YaHei", 8, 50);//第一个参数是字体(微软雅黑),第二个是字体大小,第三个是加粗(50代表正常) -
font.setItalic(true);//斜体 -
ui->box->setFont(font); -
//又或者 -
QFont font(QString::fromLocal8Bit("微软雅黑"), 9); -
ui->box->setFont(font); -
字体属性可以传递: -
QFont newfont; -
newfont = QFont("Microsoft YaHei", 8, 50); -
或者 -
QFont font("微软雅黑",10); -
newfont = font; -
//将字体设为QApplication默认字体 -
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设计师界面设置字体
实际使用中,有时候我们控件中的字体是控件出现之后设置上去的,想设置这种字体颜色,怎么办呢:
-
QPalette palette; -
palette.setColor(QPalette::WindowText,Qt::red); -
ui->label_CurrentTime->setPalette(palette); //这里设置控件字体颜色 -
ui->label_CurrentTime->setText(StrCurrentTime);//附加文本显示为上面设置的红色
tips:在开发板上运行Qt程序时,很多时候我们对字体的设置并没有效果,这是因为开发板上的字体依赖于字库,我们要把对应字库移植到开发板指定位置,如:

然后,在运行程序时,指定字体,如:./test -font wenquanyi -qws
如果设置无效,可以将其他字体删除,然后./test -qws,
3、QT字体综述:
-
Qt 支持的中文字体的名称 -
“Arial Unicode MS” -
“Fixedsys” -
“SimSun-ExtB” -
“System” -
“Terminal” -
“仿宋” -
“华文中宋” -
“华文仿宋” -
“华文宋体” -
“华文彩云” -
“华文新魏” -
“华文楷体” -
“华文琥珀” -
“华文细黑” -
“华文行楷” -
“华文隶书” -
“宋体” -
“幼圆” -
“微软雅黑” -
“新宋体” -
“方正姚体” -
“方正舒体” -
“楷体” -
“隶书” -
“黑体” -
代码: -
{ -
QFontDatabase database; -
foreach(const QString &family, database.families(QFontDatabase::SimplifiedChinese)) -
{ -
qDebug() << family; -
} -
} -
以上这段代码就可以枚举出系统中所有支持中文的字体名称。 -
Qt支持的其他字体的名称 -
“Aharoni” -
“Andalus” -
“Angsana New” -
“AngsanaUPC” -
“Aparajita” -
“Arabic Typesetting” -
“Arial” -
“Arial Black” -
“Arial Narrow” -
“Arial Unicode MS” -
“Batang” -
“BatangChe” -
“Book Antiqua” -
“Bookman Old Style” -
“Bookshelf Symbol 7” -
“Browallia New” -
“BrowalliaUPC” -
“Calibri” -
“Calibri Light” -
“Cambria” -
“Cambria Math” -
“Candara” -
“Century” -
“Century Gothic” -
“Comic Sans MS” -
“Consolas” -
“Constantia” -
“Corbel” -
“Cordia New” -
“CordiaUPC” -
“Courier” -
“Courier New” -
“DaunPenh” -
“David” -
“DFKai-SB” -
“DilleniaUPC” -
“DokChampa” -
“Dotum” -
“DotumChe” -
“Ebrima” -
“Estrangelo Edessa” -
“EucrosiaUPC” -
“Euphemia” -
“Fixedsys” -
“Franklin Gothic Medium” -
“FrankRuehl” -
“FreesiaUPC” -
“Gabriola” -
“Garamond” -
“Gautami” -
“Georgia” -
“Gisha” -
“Gulim” -
“GulimChe” -
“Gungsuh” -
“GungsuhChe” -
“Impact” -
“IrisUPC” -
“Iskoola Pota” -
“JasmineUPC” -
“Kalinga” -
“Kartika” -
“Khmer UI” -
“KodchiangUPC” -
“Kokila” -
“Lao UI” -
“Latha” -
“Leelawadee” -
“Levenim MT” -
“LilyUPC” -
“Lucida Console” -
“Lucida Sans Unicode” -
“Malgun Gothic” -
“Mangal” -
“Marlett” -
“Meiryo” -
“Meiryo UI” -
“Microsoft Himalaya” -
“Microsoft JhengHei” -
“Microsoft New Tai Lue” -
“Microsoft PhagsPa” -
“Microsoft Sans Serif” -
“Microsoft Tai Le” -
“Microsoft Uighur” -
“Microsoft Yi Baiti” -
“MingLiU” -
“MingLiU-ExtB” -
“MingLiU_HKSCS” -
“MingLiU_HKSCS-ExtB” -
“Miriam” -
“Miriam Fixed” -
“Modern” -
“Mongolian Baiti” -
“Monotype Corsiva” -
“MoolBoran” -
“MS Gothic” -
“MS Mincho” -
“MS Outlook” -
“MS PGothic” -
“MS PMincho” -
“MS Reference Sans Serif” -
“MS Reference Specialty” -
“MS Sans Serif” -
“MS Serif” -
“MS UI Gothic” -
“MT Extra” -
“MV Boli” -
“Narkisim” -
“Nyala” -
“Palatino Linotype” -
“Plantagenet Cherokee” -
“PMingLiU” -
“PMingLiU-ExtB” -
“Raavi” -
“Rod” -
“Roman” -
“Sakkal Majalla” -
“Script” -
“Segoe Print” -
“Segoe Script” -
“Segoe UI” -
“Segoe UI Light” -
“Segoe UI Semibold” -
“Segoe UI Symbol” -
“Shonar Bangla” -
“Shruti” -
“Simplified Arabic” -
“Simplified Arabic Fixed” -
“SimSun-ExtB” -
“Small Fonts” -
“Sylfaen” -
“Symbol” -
“System” -
“Tahoma” -
“Terminal” -
“Times New Roman” -
“Traditional Arabic” -
“Trebuchet MS” -
“Tunga” -
“Utsaah” -
“Vani” -
“Verdana” -
“Vijaya” -
“Vrinda” -
“Webdings” -
“Wingdings” -
“Wingdings 2” -
“Wingdings 3” -
{ -
QFontDatabase database; -
foreach(const QString &family, database.families()) -
{ -
qDebug() << family; -
} -
} -
以上这段代码就可以枚举出系统支持的所有字体的名称; -
中文字体名称对应的字体英文名称 -
宋体 SimSun -
黑体 SimHei -
微软雅黑 Microsoft YaHei -
微软正黑体 Microsoft JhengHei -
新宋体 NSimSun -
新细明体 PMingLiU -
细明体 MingLiU -
标楷体 DFKai-SB -
仿宋 FangSong -
楷体 KaiTi -
仿宋_GB2312 FangSong_GB2312 -
楷体_GB2312 KaiTi_GB2312 -
宋体:SimSuncss中中文字体(font-family)的英文名称 -
Mac OS的一些: -
华文细黑:STHeiti Light [STXihei] -
华文黑体:STHeiti -
华文楷体:STKaiti -
华文宋体:STSong -
华文仿宋:STFangsong -
儷黑 Pro:LiHei Pro Medium -
儷宋 Pro:LiSong Pro Light -
標楷體:BiauKai -
蘋果儷中黑:Apple LiGothic Medium -
蘋果儷細宋:Apple LiSung Light -
Windows的一些: -
新細明體:PMingLiU -
細明體:MingLiU -
標楷體:DFKai-SB -
黑体:SimHei -
新宋体:NSimSun -
仿宋:FangSong -
楷体:KaiTi -
仿宋_GB2312:FangSong_GB2312 -
楷体_GB2312:KaiTi_GB2312 -
微軟正黑體:Microsoft JhengHei -
微软雅黑体:Microsoft YaHei -
装Office会生出来的一些: -
隶书:LiSu -
幼圆:YouYuan -
华文细黑:STXihei -
华文楷体:STKaiti -
华文宋体:STSong -
华文中宋:STZhongsong -
华文仿宋:STFangsong -
方正舒体:FZShuTi -
方正姚体:FZYaoti -
华文彩云:STCaiyun -
华文琥珀:STHupo -
华文隶书:STLiti -
华文行楷:STXingkai -
华文新魏:STXinwei
本文详细介绍了QT中的字体设置方法,包括如何使用QFont类指定文本字体、大小及样式,以及如何通过QFontDatabase枚举系统支持的字体。同时,还探讨了setPixelSize与setPointSize的区别,并提供了设置全局字体及控件字体颜色的具体示例。

5262

被折叠的 条评论
为什么被折叠?



