在Qt中設定全域性字型通常涉及兩個步驟:
- 首先載入所需的字型
- 然後將其應用為應用程式範圍內的預設字型。
這可以透過在應用程式初始化時設定 QApplication
的字型屬性來實現。
以下是一個示例程式碼,展示瞭如何設定全域性字型:
1 #include <QApplication>
2 #include <QFont>
3 #include <QFontDatabase>
4
5 int main(int argc, char *argv[])
6 {
7 QApplication app(argc, argv);
8
9 // 載入字型檔案
10 // 假設字型檔案位於可執行檔案的同一目錄下,或者已經被新增到了資原始檔中
11 // 如果是從檔案系統中載入,使用類似 "D:/path/to/your/font.ttf" 的路徑
12 // 如果是從資原始檔中載入,使用類似 ":/fonts/yourfont.ttf" 的路徑
13 int fontId = QFontDatabase::addApplicationFont(":/fonts/yourfont.ttf");
14
15 // 檢查字型是否成功載入
16 if (fontId != -1) {
17 // 獲取新載入的字型的家族名稱列表
18 QStringList fontFamilies = QFontDatabase::applicationFontFamilies(fontId);
19
20 // 假設我們只載入了一個字型,或者只關心第一個字型家族
21 if (!fontFamilies.isEmpty()) {
22 QString familyName = fontFamilies.first();
23
24 // 建立字型物件並設定屬性
25 QFont font(familyName);
26 font.setPointSize(10); // 設定字型大小
27
28 // 設定應用程式的全域性字型
29 app.setFont(font);
30
31 // 現在,所有新建立的視窗和控制元件都將預設使用這個字型,
32 // 除非在建立時明確指定了其他字型。
33 }
34 }
35
36 // ... 建立和顯示主視窗等
37
38 return app.exec();
39 }
在這個例子中,我們首先使用 QFontDatabase::addApplicationFont() 方法載入字型檔案。然後,我們檢查字型是否成功載入,並獲取載入的字型的家族名稱。接下來,我們建立一個 QFont 物件,並設定所需的屬性,如字型大小和樣式。最後,我們使用 QApplication::setFont() 方法將這個字型設定為應用程式的全域性字型。
請注意,這個設定只會影響之後建立的視窗和控制元件。如果在設定全域性字型之前已經建立了視窗或控制元件,你需要單獨為它們設定字型。此外,一些控制元件可能有自己的預設字型設定,這些設定可能會覆蓋全域性字型設定。在這種情況下,你需要在建立這些控制元件時明確指定所需的字型。