web-dev-qa-db-fra.com

Comment spécifier les polices monospace pour les applications Qt multiplateformes?

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.

54
Luper Rouch

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)
30
f15h

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é.

51
Torsten Marek

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.

15
bluebrother

J'utilise Courier dans Qt sur Linux et Windows.

4
user179232