QT的的字體使用(全局自帶字體特別好用)

 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

相關文章
相關標籤/搜索