Seite 1 von 1

[PyQt] Painter - Punkte malen

Verfasst: 26. Juli 2009 16:12
von sarge
Hallo.
Ich beschäftige mich noch nicht allzu lange mit Qt und bin gerade ein wenig am verzweifeln... Ich habe ein Programm geschrieben, mit dem ich über die serielle Schnittstelle zwei Ultraschallsensoren auslese. Das Auslesen selber passiert in einem Thread, welcher die gemessene Entfernung als Wert per Signal zurück gibt.
Nun möchte ich diese Werte in dem Hauptfenster als Punkte darstellen - habe dazu auf der rechten Seite ein Label definiert, in dem nun die Punkte als Abstand vom Mittelpunkt dargestellt werden sollen. Bloß, wie macht man das? Ich hab es mit einem PaintEvent von dem Label probiert - hierbei meckert Qt aber, dass man das während der Laufzeit nicht ändern sollte, danach hab ich eine extra Funktion geschrieben, welche ein Painter definiert und die Punkte malt - bloß hierbei bekomm ich die Meldung: Painter not active.
Vielleicht kann mir ja jemand ein kleines Beispiel zeigen, wie man während der Laufzeit in ein Pixmap Punkte zeichnen lässt? Das ist sicher auch nicht schwer, aber ich bekomm es einfach nicht hin :(

Schon mal Danke für die Mühe!
MfG,
Robert

Verfasst: 26. Juli 2009 19:28
von franzf
Hi,

Mit python ungefähr so:

Code: Alles auswählen

pix = QPixmap(width, height)
painter = QPainter(pix)
# mit painter malen
painter.end()

label.setPixmap(pix)
Auf ein QWidget direkt kann man aber nur im paintEvent() malen. Das ist eine protected Methode, welche in einem eigenen von QWidget (oder von mir aus QLabel) abgeleiteten Widget implementiert werden muss. Von außen kannst du nicht auf ein Widget malen...

Verfasst: 26. Juli 2009 22:12
von sarge
Vielen Dank!!! ;)
Das ist ja so einfach, keine Ahnung, warum ich das nicht selbst hinbekommen habe...
Jetzt kanns weitergehen - super :)