How to specify monospace fonts for cross platform Qt applications?
Is there a platform independent way to specify a fixed width font for a Qt widget ?
If I set the font to "Monospace" in Designer on Linux, it is not found on Windows and Arial is used instead.
Solution 1:
You can use the style hint property of QFont:
QFont font("Monospace");
font.setStyleHint(QFont::TypeWriter);
If the font cannot be found (which happens with Monospace on Windows), Qt's font matching algorithm tries to find a font that matches the given style hint.
Solution 2:
You can retrieve the system's default fixed font using QFontDatabase's systemFont(..) function. It was introduced in Qt 5.2.
Example:
const QFont fixedFont = QFontDatabase::systemFont(QFontDatabase::FixedFont)
Solution 3:
For all widgets that accept Rich Text you can simply put it into a pre
block, i.e. <pre>This is my Text</pre>
. It will then use the systems monospace font.
Solution 4:
I use Courier in Qt on both Linux and Windows.