WIN10下的默认字体竟然是Segoe UI,形成各Windows版本显示不一致,能够这样修改Windows的默认字体(重启后生效):linux
[HKEY_LOCAL_MACHINE>>SOFTWARE>>Microsoft>>WindowsNT>>CurrentVersion>>FontSubstitutes:Segoe UI = Tahoma]windows
可是最好仍是软件本身指定显示字体,这样才能作到可控,这样设置全局字体:app
QFont font; font.setFamily("MS Shell Dlg 2"); // Tahoma 宋体 qApp->setFont(font);
检测全局字体:ide
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的默认字体竟然是MS Shell Dlg 2):字体
"unknown"
"MS Shell Dlg 2"
"Arial"
""
"MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0"
"MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0"spa
---------------------------------------------------------------------操作系统
另外还可把字体做为资源文件携带,而后再使用,比方说我以为微软雅黑就不错:.net
//将字体文件名传给addApplicationFont,获得字体的Id
int fontId = QFontDatabase::addApplicationFont("./res/msyh.ttf");
//将字体Id传给applicationFontFamilies,获得一个QStringList,其中的第一个元素为新添加字体的family
QString msyh = QFontDatabase::applicationFontFamilies ( fontId ).at(0);
QFont font(msyh,10);
//将此字体设为QApplication的默认字体
QApplication::setFont(font);插件
可是看官方文档说明:
The QFontDatabase class provides information about the fonts available in the underlying window system.
注意,window system不是指windows,而是指全部的窗口系统。code
---------------------------------------------------------------------
QFont 为绘画文本提供制定的字体
QFontComboBox 提供了选择字体族的下拉列表框
QFontDatabase 提供了能够在Window 操做系统下可以使用的字体
QFontDialog 用来选择一个指定的字体
QFontEngineInfo 用来描述一个指定的字体引擎插件
QFontEnginePlugin 累提供了字体仓库插件的基础累, 用于嵌入式linux
QFontInfo 包含了一个字体的常规信息
QFontDialog 用来弹出对话框 来得到指定的字体
---------------------------------------------------------------------
参考:http://mobile.51cto.com/symbian-272552.htm (底下还有系列文章)http://blog.csdn.net/Liuqz2009/article/details/7208637