PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : QPainter malt nicht



Firebird
28-10-2003, 16:07
Nachdem mein Programm mit QPainter nicht funktioniert hat, hab ich mal das Beispiel aus der Qt-3.2-Doc ausprobiert, was auch nicht funktioniert.

Hier mal ein bisschen Code:


void TheWidget::paintEvent()
{
QPainter paint( this );
paint.setPen( Qt::blue );
paint.drawText( rect(), AlignCenter, "The Text" );
}

Die Methode wird da aufgerufen (da sieht man auch gleich, dass TheWidget von QWidget "abstammt"):


TheWidget::TheWidget(QWidget *parent, const char *name ) : QWidget(parent,name) {

// ........ lass ich mal weg ....

paintEvent();
}

Da man TheWidget nachher auf dem Bildschirm sehen kann, bin ich mir ziemlich sicher, dass die Methode auch ausgeführt wird. Beim kompilieren gibt es keinen einzigen Fehler, aber das Fenster ist nachher komplett grau, ohne irgendeine Besonderheit.

Muss ich bei der Benutzung von QPainter noch irgendwelche besonderen Dinge beachten?
Oder hab ich nen Fehler gemacht?

Danke schonmal für alle Antworten :)

tuxipuxi
28-10-2003, 16:25
hi,

paintEvent hat einen parameter, naemlich:
QWidget::paintEvent( QPaintEvent* ).

wenn du nun den parameter weglaesst, ist es kein ueberschreiben, sondern ueberladen.
also das musst du schonmal anedern.

paintEvent() brauchst und sollst du nicht explizit aufrufen, dass tut das widget bei jedem neuzeichnen von selbst( wenn du es dennoch erzwingen willst: QWidget::update() ).

ciao,

tuxipuxi.

Firebird
28-10-2003, 16:30
THX :)

Jetzt klappts ohne Probleme :D