Pourquoi la fonction suivante renvoie 0? (Mon environnement est Windows Vista, vC++ 9, Qt4.5)QFontMetrics :: leading() renvoie 0
int func()
{
QPushButton button("Blah blah");
QFontMetrics fm = button.fontMetrics();
return fm.leading();
}
Appel à "fm.height()" renvoie des résultats raisonnables (16 px dans mon cas). L'appel à "fm.lineSpacing()" renvoie le même résultat que "fm.height()".
Appel à "fm.boundingRect (QRect(), 0," première ligne \ n deuxième ligne \ n troisième ligne "). Height();" renvoie 16 * 3, c'est-à-dire à nouveau l'interligne non inclus dans le résultat ...
Est-ce que cette utilisation incorrecte est de mon côté ou quelque chose d'autre?
J'utilise une police prédéfinie (police par défaut pour les boutons sur le système Vista) pour les légendes des boutons (le texte des boutons dans la terminologie Qt). Lorsque je place un texte multiligne sur le bouton, chaque ligne de texte se sépare des lignes voisines avec de l'espace (espace non nul). Donc, je ne peux pas comprendre, pourquoi leading() renvoie "0", mais en effet j'ai un certain espacement entre les lignes (que je ne peux pas calculer pensait leading() appel) ... – cybevnm