QPainter Problem

Alles zum Qt Framework für Java
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag von ArneStocker »

Code: Alles auswählen

protected void mouseMoveEvent(QMouseEvent event)
{
        drawto(event.pos());
} 
Auszug aus der API
Warning: When the paintdevice is a widget, QPainter can only be used inside a paintEvent() function or in a function called by paintEvent(); that is unless the Qt::WA_PaintOutsidePaintEvent widget attribute is set. On Mac OS X and Windows, you can only paint in a paintEvent() function regardless of this attribute's setting.
vielleicht ist es das :-)

Gruß Arne

OK, muss mich möglicherweise berichtigen, Du malst ja auf ein Image - Device und nicht auf Dein Fenster. Allerdings worauf malst Du im paintEvent ?
Tobi1988
Beiträge: 28
Registriert: 13. Juni 2008 09:14

Beitrag von Tobi1988 »

Hi,

im paintEvent male ich das QImage neu, welches ich ja in drawto() veränder.

Ich glaube nicht, dass der Fehler da liegt, wo du es meinst, da ich es in einem Beispiel von trolltech selber genau so gemacht wird. Also erst mit "mouseMoveEvent" eine selbstgeschriebene Methode geöffnet, die in ein QImage die veränderungen speichert und dann in "paintEvent()" das QImage im Hauptfenster neu zeichnen. Nur anscheinend gibt es ein Problem, wenn ich eine Klasse von "QScrollArea" ableite und dann dort ein "paintEvent()" aufrufe. Wenn ich aber nun von QWidget ableite funktioniert das einwandfrei.

MfG
Tobi
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag von ArneStocker »

.. Du hast Recht und ich hab nicht aufgepasst :oops:

Gruß Arne
Antworten