有没有一种跨平台的方式来为Qt小部件指定固定宽度字体?
如果我在Linux上在设计器中将字体设置为“Monospace”,则在Windows上找不到该字体,会改用Arial。
您可以使用QFont的style hint属性:
QFont font("Monospace");
font.setStyleHint(QFont::TypeWriter);
您可以使用QFontDatabase的systemFont(..)函数来检索系统的默认固定字体。它是在Qt 5.2中引入的。
示例:
const QFont fixedFont = QFontDatabase::systemFont(QFontDatabase::FixedFont)
setStyleHint
方法确实起作用了。 - Matteo Italia对于接受富文本的所有小部件,您可以将其简单地放入pre
块中,即<pre>这是我的文本</pre>
。然后它将使用系统等宽字体。
<code>
如果你想让文本换行。 - Jonas Eberle我在Linux和Windows上都使用Qt中的Courier字体。
QFont::Monospace
? - kralykQFont font("");
。 - HarveyQFont::Monospace
不会产生等宽字体,而TypeWriter
会。虽然我无法解释为什么 :( - AkiRossfont = QFont()
font.setFamily('monospace')
;在设置系列之前可能仍需要设置样式提示。 - musicamante