用户1340774522
转发了
@用户1340774522
的微博:
关于我这几天在干什么:发现在 Windows 上 Qt GUI 的界面默认字体不会随着当前账户语言而变(如当前账户语言为英文时默认字体仍然为宋体)于是经过无数次虚拟机试验和带着对微软推荐的默认界面字体 MS Shell Dlg 2 的先入为主的执念扒 QFontDatabase 和 QFontEngine 源码总结得出问题根本不在于当前系统的字体列表中是否存在 MS Shell Dlg 2 而在于启动时更早的某处已经决定了默认字体后继续在 QFont 里打断点找到症结所在:Qt GUI 的界面默认字体(似乎)来自于启动时根据当前平台环境初始化主题时取的系统字体(SystemFont)而它来自于 Windows GDI API 中早已被不建议使用的只会根据当前*系统默认账户*的语言优先级列表(存储于注册表 HKEY_USERS\.DEFAULT\Control Panel\International\User Profile 的 Languages 值的二进制数据中)的首选语言取相应字体的 GetStockObject(DEFAULT_GUI_FONT) 函数。于是在系统默认账户为中文(可在控制面板-区域-管理-复制设置中修改)时无论当前用户选择了什么语言界面默认字体就是宋体。
原文转发[2]
原文评论[0]
转发理由:
所以我发现我为什么这么喜欢 Qt 桌面应用了:已经 1202 年,Windows 早就在用 Segoe UI 和微软雅黑了,Qt 还在用宋体,真的很 retro。//
@用户1340774522
:刚刚谷歌了一下发现这条路已经被前人走过 114514 遍了:
https://www.google.com/search?q=DEFAULT_GUI_FONT+qt
。如果我当时多搜索一会儿或者直接改用 Qt 6,啥事没有。
2021-02-02 01:14:57
举报
收藏
操作
转发
评论
赞[0]
评论只显示前140字:
还没有人针对这条微博发表评论!