Question

Pourquoi la fonction suivante renvoie 0? (Mon environnement est: Windows Vista, vc ++ 9, Qt4.5)


int func()
{
    QPushButton button("Blah blah");
    QFontMetrics fm = button.fontMetrics();
    return fm.leading();
}

Appel de "fm.height ()" renvoie des résultats raisonnables (16 px dans mon cas).

Appel de "fm.lineSpacing ()" renvoie le même résultat que "fm.height ()".

Appel de "fm.boundingRect (QRect (), 0," première ligne \ n deuxième ligne \ n troisième ligne "). height ();"; "; renvoie 16 * 3, c'est-à-dire que l'espacement interligne n'est pas inclus dans le résultat ...

S'agit-il d'un usage incorrect de ma part ou de quelque chose d'autre?

Était-ce utile?

La solution

Selon les documents lineSpacing () est toujours égal à height () + lead ()

height () est toujours égal à ascent () + descente () + 1 (le 1 correspond à la ligne de base).

De ici est placé de la manière suivante:" l'espace vertical entre les lignes de texte - nom provient du morceau de plomb physique utilisé dans le processus d'impression mécanique pour séparer les lignes de texte ".

Alors, quelle police utilisez-vous et utilise-t-il une taille zéro?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top