Existe-t-il un moyen indépendant de la plate-forme de spécifier une police à largeur fixe pour un widget Qt?
Si je mets la police sur "Monospace" dans Designer sur Linux, elle ne se trouve pas sur Windows et Arial est utilisé à la place.
Vous pouvez récupérer la police fixe par défaut du système à l'aide de la fonction systemFont (..) de QFontDatabase. Il a été introduit dans Qt 5.2.
Exemple:
const QFont fixedFont = QFontDatabase::systemFont(QFontDatabase::FixedFont)
Vous pouvez utiliser la propriété style hint de QFont:
QFont font("Monospace");
font.setStyleHint(QFont::TypeWriter);
Si la police est introuvable (ce qui arrive avec Monospace sous Windows), Qt's algorithme de correspondance des polices essaie de trouver une police qui correspond à l'indice de style donné.
Pour tous les widgets qui acceptent le texte enrichi, vous pouvez simplement le placer dans un bloc pre
, c'est-à-dire <pre>This is my Text</pre>
. Il utilisera ensuite la police monospace du système.
J'utilise Courier dans Qt sur Linux et Windows.