如何为跨平台Qt应用程序指定等宽字体?

时间:2009-09-23 19:09:39

标签: qt fonts

是否有一种独立于平台的方式来为Qt小部件指定固定宽度的字体?

如果我在Linux上的Designer中将字体设置为“Monospace”,则在Windows上找不到它,而是使用Arial。

4 个答案:

答案 0 :(得分:49)

您可以使用QFont的style hint属性:

QFont font("Monospace");
font.setStyleHint(QFont::TypeWriter);

如果找不到该字体(在Windows上使用Monospace时会发生这种情况),Qt的font matching algorithm会尝试查找与给定样式提示相匹配的字体。

答案 1 :(得分:30)

您可以使用QFontDatabase的systemFont(..)函数检索系统的默认固定字体。 它是在Qt 5.2中引入的。

示例:

const QFont fixedFont = QFontDatabase::systemFont(QFontDatabase::FixedFont)

答案 2 :(得分:15)

对于接受Rich Text的所有小部件,您只需将其放入pre块,即<pre>This is my Text</pre>。然后它将使用系统monospace字体。

答案 3 :(得分:4)

我在Linux和Windows上使用Qt中的Courier。