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

有一个平台独立的方式来指定一个固定宽度的字体的Qt小部件?

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

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

例:

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

您可以使用QFont的样式提示属性:

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

如果找不到字体(在Windows上使用Monospace),Qt的字体匹配algorithm会尝试查找与给定样式提示相匹配的字体。

对于接受Rich Text的所有小部件,您可以简单地将其放入pre块,即<pre>This is my Text</pre> 。 它将使用系统等宽字体。

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