ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1660
1660
EMPFEHLEN
-
Hallo,
wie kann ich einen Buchstaben aus einer Font mit QPainter zeichnen, sodass er unabhängig von der gesetzten Schriftgröße der Font in ein bestimmtes Rechteck gemalt wird?
void drawText ( const QRect & rectangle, int flags, const QString & text, QRect * boundingRect = 0 )
Geht irgendwie nicht so wie ich es verstehe.
Wozu genau ist das zweite Rechteck da?
LG Orbit
-
Moin,
drawText(...) ist scho richtig - das boundingRect beschreibt den Platz, den Dein Text einnimmt, das erste QRect die Fläche auf der er "gezeichnet" werden soll.
das boundingRect bekommst Du folgend heraus:
Code :1 2 3 4 5 6 7 8 9 10
void DEIN_QWIDGET_CLASSNAME::paintEvent(QPaintEvent *event) { Q_UNUSED(event); // event wird hier ignoriert QPainter painter(this); // initialisiere QPainter Object QString txt = "DEIN TEXT"; QFontMetrics metrics = fontMetrics(); // geht NUR in einem QWidget! QRect boundingRect = metrics.boundingRect(txt); // ermittle Fläche des Textes int flags = Qt::AlignCenter; // zentriere Text painter.drawText(contentsRect(), flags, txt, &boundingRect); // zeichne Text painter.end(); // Vorgang abschließen }
Weitere Doku hier: http://doc.trolltech.com/4.5/qpainter.html#drawText-11
LG
AndyGeändert von andy72 (12.10.09 um 07:40 Uhr)
-
Hallo,
muss ich dann die Font per pixelGröße verändern? also sagen wir es soll ein "E" von 3,4 zu 8, 9 gezeichnet werden. Dann lasse ich mir bei beliebiger Schriftgröße das boundingRect von "E" geben und skaliere dann die pixelGröße der Schrift sodass es passt oder wie?
LG;
Orbit
-
Das kannst Halten wie Du willst,
die Font-Size bekommst Du ja mit
Code :1 2
QFont fnt = font(); int size = fnt.pixelSize();
im Object heraus - dort kannst Du nötigenfalls mit
Code :1 2 3 4 5 6
QFont fnt = font(); int size = fnt.pixelSize(); if( size > 12 ) { fnt.setPixelSize(12); object.setFont(fnt); }
die Schriftgröße ändern - also die Schriftgröße Deinem Widget anpassen
so daß alles in Dein Rect passt
LG
Ähnliche Themen
-
Malt QPainter auf QGLWidgets mit OpenGL Befehlen?
Von Orbit im Forum C/C++Antworten: 2Letzter Beitrag: 08.04.10, 00:52 -
Rechteck Zeichnen
Von patrick1982l im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 08.03.10, 15:44 -
QT-QPainter und QWidget
Von Monchichu im Forum C/C++Antworten: 5Letzter Beitrag: 04.05.09, 00:05 -
Rechteck über JPanel zeichnen flackert
Von Ryu20 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 5Letzter Beitrag: 10.04.08, 17:31 -
[VBA] Wert aus Excel > Rechteck in PPT zeichnen
Von cocoon im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 06.07.07, 16:59





Zitieren
Login






