一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
posts - 3121,comments - 209,views - 578万

在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() 方法将这个字体设置为应用程序的全局字体。

  请注意,这个设置只会影响之后创建的窗口和控件。如果在设置全局字体之前已经创建了窗口或控件,你需要单独为它们设置字体。此外,一些控件可能有自己的默认字体设置,这些设置可能会覆盖全局字体设置。在这种情况下,你需要在创建这些控件时明确指定所需的字体。


posted on   一杯清酒邀明月  阅读(721)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2023-05-31 Qt 报错:Enigma Virtual Box 打包过的 exe 报错 cannot load library Qt5Core.dll
2021-05-31 Qt error: LNK1181: 无法打开输入文件“release\main.obj”
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示