How to specify monospace fonts for cross platform Qt applications?

后端 未结 4 1856
夕颜
夕颜 2020-12-05 08:57

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 Windo

相关标签:
4条回答
  • 2020-12-05 09:31

    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.

    0 讨论(0)
  • 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)
    
    0 讨论(0)
  • 2020-12-05 09:52

    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.

    0 讨论(0)
  • 2020-12-05 09:53

    I use Courier in Qt on both Linux and Windows.

    0 讨论(0)
提交回复
热议问题