更改默认应用程序字体

15

我有一个Qt应用程序,解析一些JSON文件并输出其内容。我希望输出的内容使用等宽字体,最简单的方法是将整个应用程序的默认字体更改为等宽字体。在Qt中如何实现这一点?

2个回答

30

只需在QApplicationQWidget上使用setFont()方法:

QFont font("Courier New");
font.setStyleHint(QFont::Monospace);
QApplication::setFont(font);
请确认以下是否符合您的要求:

请注意setStyleHint(QFont::Monospace)这一行:它确保即使指定的字体系列在系统中不存在,也会使用另一个合适的等宽字体。


此外,在我看来最好为特定的小部件设置字体,而不是整个应用程序:这样可以为您的用户界面编写更有结构性的代码,以便在扩展时进行调整。当然,这仍然是一个设计问题。


由于某种奇怪的原因,即使使用最新的QT,您仍需要删除别名才能使其正常工作。 - Mecanik

8
我发现在Qt中改变整个应用程序的字体的唯一方法是使用样式表。对于PyQt,在应用程序的init类中,您可以调用self.setStyleSheet('QWidget {font: "Roboto Mono"}')。由于样式表的级联性质,这将把所有小部件的字体设置为Roboto Mono。
仅仅设置QApplication.setFont(font)并不总是有效。有时深度嵌套的子窗口似乎不会遵守字体,例如QTreeView中的标题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接