我有一个Qt应用程序,解析一些JSON文件并输出其内容。我希望输出的内容使用等宽字体,最简单的方法是将整个应用程序的默认字体更改为等宽字体。在Qt中如何实现这一点?
只需在QApplication
或QWidget
上使用setFont()
方法:
QFont font("Courier New");
font.setStyleHint(QFont::Monospace);
QApplication::setFont(font);
请确认以下是否符合您的要求:
请注意setStyleHint(QFont::Monospace)
这一行:它确保即使指定的字体系列在系统中不存在,也会使用另一个合适的等宽字体。
此外,在我看来最好为特定的小部件设置字体,而不是整个应用程序:这样可以为您的用户界面编写更有结构性的代码,以便在扩展时进行调整。当然,这仍然是一个设计问题。
self.setStyleSheet('QWidget {font: "Roboto Mono"}')
。由于样式表的级联性质,这将把所有小部件的字体设置为Roboto Mono。QApplication.setFont(font)
并不总是有效。有时深度嵌套的子窗口似乎不会遵守字体,例如QTreeView中的标题。