Je rencontre des problèmes avec la fonction 'boundingRect' de QFontMetrics, il ne renvoie pas les résultats corrects.QFontMetrics boundingRect
mfntArial = QFont("Arial", 12, QFont::Bold);
QFontMetrics objMetrics(mfntArial);
QRect rctLine = objMetrics.boundingRect("LOS");
Dans le débogueur, rctLine contient:
x1 : 1
x2 : 26
y1 : -16
y2 : 4
Ceci est très confus, je pense x1 et y1 à la fois être 0 car il n'y a pas de position de référence passé et je me attends à la fois x2 et y2 être positif.
Le rectangle renvoyé n'est pas correct et si je l'utilise avec drawText et l'alignement, une partie de la chaîne est absente de l'affichage.
Je sais qu'il existe d'autres messages sur la façon dont cette fonction retourne les mauvais résultats et j'ai regardé ces derniers, ils ne m'a pas aidé. J'utilise Qt5.6 sur Red Hat 7.2.
J'ai aussi essayé:
QRect rctParent = pobjParent->geometry();
QRect rctLine = objMetrics.boundingRect(rctParent, intAlign, "LOS");
Où pobjParent est le widget parent et rctParent contient:
x1 : 8
x2 : 289
y1 : 24
y2 : 447
intAlign contient 33 (à gauche, en haut)
Dans ce cas rctLine retourne:
x1 : 8
x2 : 35
y1 : 24
y2 : 44
Mais le rextangle de délimitation est toujours trop petit et une partie du 'S' est manquante lors du rendu.
Official Qt documentation on QFontMetrics
Même problème [ici] (http://stackoverflow.com/questions/27336001/qfontmetrics-returns-inaccurate-results). Documentation [ici] (http://doc.qt.io/qt-4.8/qfontmetrics.html#boundingRect-2). – LogicStuff