Wie kann ich mit dem Qt-Framework die Breite (in Pixeln) eines Textstücks messen, das mit einer bestimmten Schriftart/einem gegebenen Stil gerendert wird?Messen der Textbreite in Qt
35
A
Antwort
60
Sie können QFontMetrics Klasse verwenden - siehe width() Methode, die Ihnen die Breite eines bestimmten QString geben kann.
QFont myFont(fontName, fontSize);;
QString str("I wonder how wide this is?");
QFontMetrics fm(myFont);
int width=fm.width(str);
6
ein bisschen spät, aber vielleicht hilft es, jemanden zu
im paintEventO
QString text("text");
QFontMetrics fm = painter.fontMetrics();
int width = fm.width(text);
Chears Alexander
5
Als Ergänzung zu der Antwort @ Paul, fand ich, dass Beim Malen von Text (Qt4.8 auf Linux) ist die Breite eines tatsächlich gemalten Textes im Vergleich zu der Breite, die QFontMetrics::boundingRect
zurückgibt, oft aus. In meinen Fällen war das Gemälde oft zu breit.
Wenn Sie beim Malen von Text genaue Ergebnisse erzielen möchten (z. B. um Rechtecke zu bemaßen, die Sie um den Text zeichnen), verwenden Sie besser die boundingRect
-Funktionen, die direkt von QPainter
bereitgestellt werden.
Verwandte Themen
- 1. Messen von Textbreite auf Canvas (Android) gezeichnet
- 2. Ermitteln der Textbreite in einem UITextField
- 3. Tatsächliche Textbreite android
- 4. Autosize Textbreite (Spalten)?
- 5. Berechnung der Textbreite mit PHP GD
- 6. Wie man Textbreite begrenzt
- 7. Abrufen der Textbreite in SVG vor dem Rendern
- 8. wie genaue Textbreite für RenderText in Graphics32
- 9. Wie man Textbreite in kineticjs misst?
- 10. Ändern der Textbreite der Noten im Beamer (LaTeX)
- 11. P-Tag zu dynamischer Textbreite
- 12. Gettrusage() zum Messen der Systemzeit in C
- 13. Berechnung Textbreite in Actionscript und Flex
- 14. Werkzeug zum Messen der Renderzeit
- 15. Limit Hover auf die Textbreite
- 16. Ansicht in Fragment messen
- 17. Geräuschpegel messen
- 18. Serverlaufzeit messen
- 19. messen Zeitunterschied
- 20. Berechnung der Textbreite ohne Verlust von DOM-Attributen
- 21. machen die Nav-Bar gestapelt Spannweite nach der Textbreite
- 22. CSS - Einstellung Padding/Margen basierend auf Textbreite?
- 23. verstrichene Zeit in Qt Get
- 24. Messen von Netzwerkverkehr in C#
- 25. Messen von Text in WPF
- 26. So messen Sie den Fortschritt der Softwareentwicklung
- 27. Messen der Größe von HttpSession-Objekt
- 28. Vim unterschiedliche Textbreite für mehrzeilige C-Kommentare?
- 29. Einstellungen in der Qt-Combobox
- 30. Gesamtzahl der Ersetzungen in Qt
Die gleiche Situation unter OS X mit Qt 5.5.1 gefunden. Die Höhe war aus. Ich verwendete ein eigenständiges QFontMetrics, aber musste die Schriftart auf dem Maler einstellen und sein boundingRect direkt benutzen, um den Text genau zu messen. – kainjow