web-dev-qa-db-ja.com

クロスプラットフォームQtアプリケーションのモノスペースフォントを指定する方法

Qtウィジェットの固定幅フォントを指定するプラットフォームに依存しない方法はありますか?

LinuxのDesignerでフォントを「Monospace」に設定した場合、Windowsではフォントが見つからず、代わりにArialが使用されます。

54
Luper Rouch

QFontDatabaseのsystemFont(..)関数を使用して、システムのデフォルトの固定フォントを取得できます。 Qt 5.2で導入されました。

例:

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

QFontの style hint プロパティを使用できます:

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

フォントが見つからない場合(WindowsのMonospaceで発生します)、Qtの フォントマッチングアルゴリズム は、指定されたスタイルヒントに一致するフォントを見つけようとします。

51
Torsten Marek

リッチテキストを受け入れるすべてのウィジェットについて、単純にpreブロックに入れることができます。つまり、<pre>This is my Text</pre>。次に、システムのモノスペースフォントを使用します。

15
bluebrother

LinuxとWindowsの両方のQtでCourierを使用しています。

4
user179232