Seite 1 von 1

QPainter auf Label oder Layout

Verfasst: 8. Oktober 2008 17:10
von SaLu
Hi kann mir jmd sagen wie ich ein Qpainter auf ein QLabel bekomme oder ein QgridLayout. Habe meine GUI mithilfe des Designer gemalt. Dort gab es aber keinen Kreis. Darum habe ich einen Kreis mit QPainter gemalt und will das in meine GUI packen. Sollte normal ein einfaches Problem sein. Aber ich steh momentan auf dem Schlauch.

Wäre für jede Hilfe dankbar.

Verfasst: 8. Oktober 2008 20:05
von solarix
Darum habe ich einen Kreis mit QPainter gemalt
Wie (Code)?

Verfasst: 11. Oktober 2008 08:06
von SaLu
so ungefähr.

QRectF pie(10.0,20.0,80.0,60.0);
QPainter painter(ui.label_46);
painter.begin(ui.label_46);
painter.drawEllipse(pie);
painter.setBrush(Qt::red);
painter.end();

nur das mit dem Qlabel funktioniert noch nicht

Verfasst: 11. Oktober 2008 09:43
von upsala
Funktioniert nicht ist keine Fehlermeldung.
Warning: When the paintdevice is a widget, QPainter can only be used inside a paintEvent() function or in a function called by paintEvent();

Verfasst: 11. Oktober 2008 13:27
von SaLu
also diese Warnung kommt bei mir überhaupt nicht. Und warum sollte ich den Kreis mit einem event verknüpfen, dass ist doch schwachsinn!! Ich will einfach nur eine LED die einmal grün und einmal rot ist. Da dies im Designer nicht vorhanden ist will ich es eben zeichnen.

Alternative wäre einfach ein Pixmap auf das Label zumachen aber das fände ich nicht wirklich eine gelungene Alternative

Verfasst: 11. Oktober 2008 13:44
von upsala
Und warum sollte ich den Kreis mit einem event verknüpfen, dass ist doch schwachsinn!!
Das ist kein Schwachsinn, sondern nur der Hinweis darauf, das du die Doku nicht gelesen hast.
Ich will einfach nur eine LED die einmal grün und einmal rot ist. Da dies im Designer nicht vorhanden ist will ich es eben zeichnen.
Dann zeichne es halt. Mit Gimp ist sowas schön möglich...

Verfasst: 11. Oktober 2008 14:35
von solarix
SaLu hat geschrieben:also diese Warnung kommt bei mir überhaupt nicht.
doch.. die kommt bei dir totsicher auch unter http://doc.trolltech.com/4.4/qpainter.html#details
SaLu hat geschrieben: Alternative wäre einfach ein Pixmap auf das Label zumachen aber das fände ich nicht wirklich eine gelungene Alternative
Oder du erstellst ein neues Widget "LED" (möglicherweise als Designer-Plugin mit der Farbe als Property), welches (genau wie von Tr...Nokia dokumentiert) im paintEvent den Kreis malt... siehe dazu auch die zahlreichen Beispiele (z.B. "worldtimeclock")