[PyQt] Painter - Punkte malen

Alles rund um die Programmierung mit Qt
Antworten
sarge
Beiträge: 2
Registriert: 24. Juli 2009 23:42
Kontaktdaten:

[PyQt] Painter - Punkte malen

Beitrag 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
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag 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...
sarge
Beiträge: 2
Registriert: 24. Juli 2009 23:42
Kontaktdaten:

Beitrag von sarge »

Vielen Dank!!! ;)
Das ist ja so einfach, keine Ahnung, warum ich das nicht selbst hinbekommen habe...
Jetzt kanns weitergehen - super :)
Antworten