如何在Qt中获取系统默认字体设置?
我正在使用Qt构建一个桌面应用程序,我的开发机器是日本语言环境的7 x64,标准系统字体是
Meiryo.大多数win 7 UI是这种字体,虽然经典/较旧的程序,如ui字体定制窗口本身使用不同字体是MS UI哥特式.
直到我发现QtCreator在一个地方用MS UI哥特式构建我的应用程序,而Meiryo在另一个地方,这并不打扰我.例如,qlabel,qlineedits,qcombobox都使用MS UI哥特式,但是使用qtableview的自定义完成我稍后添加使用Meiryo. 我在QtCreator的设计器中制作了大部分的UI,而在代码中添加了完整的UI.如果我在设计器中将所有小部件的字体更改为Meiryo,那么应用程序当然会使用Meiryo看起来正确,但在这种情况下,我宁愿Qt为我自动选择任何系统的默认字体,因为win 7不会是唯一的平台我将使用这个程序. 更重要的是QApplication :: font()返回MS UI哥特式,这在我的情况下是错误的.当然,我可以使用QApplication :: setFont()设置应用程序的字体,但是它的整体目的就是让原始的外观看起来没有显示字体. 所以我的问题是 > Qt如何确定系统默认字体, 我发现的一些澄清和事实 >我希望我的应用程序为每个文本使用系统默认字体. 所以,如果我发现QTableView找到这个信息的地方,我可以在main中找到它,并用QApplication :: setFont()将其设置为应用程序.那么剩下的是手动删除所有的字体信息,然后HOPEFULLY它将工作.但是这就是为什么我们使用Qt在第一位不是吗?
我可以想到两个可能的解决方案:
>您可以使用应用程序将字体打包为资源文件,这样所有平台都将使用该字体,而不管当前系统的默认字体. 一个例子(主要方法): QApplication application(argc,argv); QFont font; font.setFamily(font.defaultFamily()); application.setFont(font); ...rest of your code... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- DirectX11 With Windows SDK--18 使用DirectXCollision库进
- windows-7 – 什么样的基于Windows的“进程记帐”软件可用?
- hyper-v – 在Windows 7计算机上从Server Manager管理Windo
- windows-server-2003 – 重用服务器名称
- .net – 如何将应用程序停靠在Windows桌面?
- 视频 – Windows Media Foundation使用IMFTransform将mp4电
- windows – 当ICMP被阻止时ping https
- windows10远程桌面连接身份验证错误:函数不受支持,这可能
- windows-phone-7 – Windows phone 7选择ListBox动画
- Azure角色正在循环–WaHostBootstrapper.exe崩溃,故障模块n
- R命令行将文件名传递给参数中的脚本(Windows)
- windows – 以管理员身份运行另一个程序
- windows-server-2008 – 系统速度/内存考虑因素x
- Windows – IIS不再信任任何CA进行客户端身份验证
- remote-desktop – 如何从Windows远程桌面服务器
- windows – 如何使用stdin管道作为gcc的源输入?
- .net – 使用适用于Windows XP / 7的Metro UI开发
- windows-phone-7 – ListPicker FullMode所选项目
- 从弹出菜单win32 api Python中选择项目
- 如何使用Windows运行时使用C#实现C API?