QPainter::drawText Breite,Höhe des Textes bestimmen
QPainter::drawText Breite,Höhe des Textes bestimmen
Hy!
Gibt es eine Möglichkeit, zu ermitteln wie Breit und Hoch (Pixel) ein Text sein wird, nachdem er mit drawText ausgegeben worden ist?
mfg
uhu01
Gibt es eine Möglichkeit, zu ermitteln wie Breit und Hoch (Pixel) ein Text sein wird, nachdem er mit drawText ausgegeben worden ist?
mfg
uhu01
Zuletzt geändert von uhu01 am 14. Juli 2005 22:50, insgesamt 1-mal geändert.
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
Hy!
Welche Funktion von QFontMetrics muss ich denn verwenden?
Ich habe boundingRect und size ausprobiert. Alle Funktionen liefern mir Werte die zu Groß sind.
Das ist der Entsprechende Teil meines Code:
Hier bekomme ich eine Höhe von 23 und eine Breite von 25.
Das Problem: lt. Paint ist der ausgegebene Text nur 14*26 Pixel groß.
Brauche das ganze weil ich einen Text zentriert in ein Rechteck zeichnen muss.
Woran könnte das liegen? Verwende ich die falsche Funktion?
Für die die's ausprobieren wollen: der Text ist momentan "11-1" und die Font hab ich angehängt.
mfg
uhu01
Welche Funktion von QFontMetrics muss ich denn verwenden?
Ich habe boundingRect und size ausprobiert. Alle Funktionen liefern mir Werte die zu Groß sind.
Das ist der Entsprechende Teil meines Code:
Code: Alles auswählen
...
m_fntText = QFont( "LCARS", 15);
...
QFontMetrics fontm( m_fntText);
QSize bdRect = fontm.size( 0, m_strText);
...
QString test;
test.sprintf("h[%d] w[%d]", bdRect.height(), bdRect.width());
QMessageBox::information( 0, "LCAR", test);
Das Problem: lt. Paint ist der ausgegebene Text nur 14*26 Pixel groß.
Brauche das ganze weil ich einen Text zentriert in ein Rechteck zeichnen muss.
Woran könnte das liegen? Verwende ich die falsche Funktion?
Für die die's ausprobieren wollen: der Text ist momentan "11-1" und die Font hab ich angehängt.
mfg
uhu01
- Dateianhänge
-
- lcars.zip
- Die Font die ich verwende
- (24.11 KiB) 189-mal heruntergeladen
Zuletzt geändert von uhu01 am 14. Juli 2005 22:58, insgesamt 1-mal geändert.
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
-
ArneStocker
- Beiträge: 300
- Registriert: 3. November 2004 16:15
- Wohnort: Berlin
Code: Alles auswählen
QFontMetrics fontmetric(widget->font());
int width = fontmetric.width("das ist ein Text");
int height = fontmetric.height(); // korrektur :-)
Ausserdem, wenn ich das so richtig sehe, misst Du die Länge von m_strText (was steht da drin) und gibst aber test aus.
Gruss Arne
Zuletzt geändert von ArneStocker am 15. Juli 2005 09:31, insgesamt 2-mal geändert.
Hy!
Ich habe jetzt statt
hilft aber leider auch nicht, kommt das gleiche dabei raus
Sonst noch irgend eine Idee?
Edit: könnte es sein dass die Ergebnisse noch irgendwie umgerechnet werden müssen?
mfg
uhu01
Ich habe jetzt statt
Code: Alles auswählen
QSize bdRect = fontm.size( 0, m_strText);
QSize bdRect = fontm.size( Qt::TextSingleLine, m_strText);Sonst noch irgend eine Idee?
Edit: könnte es sein dass die Ergebnisse noch irgendwie umgerechnet werden müssen?
mfg
uhu01