更改默认应用字体

时间:2017-02-04 14:25:21

标签: qt qtwidgets

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

2 个答案:

答案 0 :(得分:8)

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

QFont font("Courier New");
font.setStyleHint(QFont::Monospace);
QApplication::setFont(font);

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

另外,在我看来,为某个小部件设置字体更好,整个应用程序:这为您的UI提供了更加结构化的代码,以便扩展。然而,当然,这仍然是一个设计问题。

答案 1 :(得分:1)

我想出的改变Qt整个应用程序字体的唯一方法是使用样式表。对于应用程序init类中的PyQt,您可以调用self.setStyleSheet('QWidget {font: "Roboto Mono"}')。由于样式表的级联性质,这会将所有小部件的字体设置为Roboto Mono。

设置QApplication.setFont(font)并不总是对我有用。有时,深度嵌套的子窗口小部件似乎不尊重字体,例如QTreeView中的标题。