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


 WIN10下的默認字體居然是Segoe UI,造成各Windows版本顯示不一致,可以這樣修改Windows的默認字體(重啟后生效):

[HKEY_LOCAL_MACHINE>>SOFTWARE>>Microsoft>>WindowsNT>>CurrentVersion>>FontSubstitutes:Segoe UI = Tahoma]

但是最好還是軟件自己指定顯示字體,這樣才能做到可控,這樣設置全局字體:

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的默認字體居然是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"

---------------------------------------------------------------------

另外還可把字體作為資源文件攜帶,然后再使用,比方說我覺得微軟雅黑就不錯:

//將字體文件名傳給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,而是指所有的窗口系統。

---------------------------------------------------------------------

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM