【问题标题】:Change default application font更改默认应用程序字体
【发布时间】:2017-06-21 20:12:46
【问题描述】:

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

【问题讨论】:

    标签: qt qtwidgets


    【解决方案1】:

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

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

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


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

    【讨论】:

    • 出于某种奇怪的原因,即使是最新的 QT;您需要删除别名才能使其正常工作。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-08-17
      • 1970-01-01
      • 2022-01-19
      • 2013-08-14
      • 2013-07-25
      • 2010-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多