Qtウィジェットの固定幅フォントを指定するプラットフォームに依存しない方法はありますか?
LinuxのDesignerでフォントを「Monospace」に設定した場合、Windowsではフォントが見つからず、代わりにArialが使用されます。
QFontDatabaseのsystemFont(..)関数を使用して、システムのデフォルトの固定フォントを取得できます。 Qt 5.2で導入されました。
例:
const QFont fixedFont = QFontDatabase::systemFont(QFontDatabase::FixedFont)
QFontの style hint プロパティを使用できます:
QFont font("Monospace");
font.setStyleHint(QFont::TypeWriter);
フォントが見つからない場合(WindowsのMonospaceで発生します)、Qtの フォントマッチングアルゴリズム は、指定されたスタイルヒントに一致するフォントを見つけようとします。
リッチテキストを受け入れるすべてのウィジェットについて、単純にpre
ブロックに入れることができます。つまり、<pre>This is my Text</pre>
。次に、システムのモノスペースフォントを使用します。
LinuxとWindowsの両方のQtでCourierを使用しています。