Seite 1 von 1

SVG als Hintergrundbild von QMainWindow

Verfasst: Dienstag 24. September 2013, 20:20
von Malta
Hallo,

wie wird richtig ein .svg Grafik als Hintergrung in eine QMainWindow Anwendung eingebunden.

Momentan mache ich es so, die .svg in eine .png gewandelt, die .png Datei in der .qrc angegeben, dann diese gewandelt in eine Pythondatei mit pyrcc4, und die wird dann Importiert in das Hauptprogramm.

Geht das nicht einfacher? Bei Google habe ich nichts brauchbares gefunden.

Es handelt sich um dieses Projekt:
https://github.com/MarkusHackspacher/py ... ster/lotto

Re: SVG als Hintergrundbild von QMainWindow

Verfasst: Dienstag 24. September 2013, 20:52
von EyDu
Mein erster Suchtreffer hat das hier geliefert. Auf eine Änderung der Fenstergröße sollte man dann natürlich reagieren und neu zeichnen.

Re: SVG als Hintergrundbild von QMainWindow

Verfasst: Dienstag 24. September 2013, 21:52
von Malta
Habe es gemacht, aber bekomme die Fehlermeldung

QPaintDevice: Cannot destroy paint device that is being painted
self.mainWindowPixmap = QtSvg.QSvgRenderer(join("lotto", "lottokugel.svg"))
img = QtGui.QImage(480, 320, QtGui.QImage.Format_ARGB32)
img.fill(0)
painter = QtGui.QPainter(img)
self.mainWindowPixmap.render(painter)

Re: SVG als Hintergrundbild von QMainWindow

Verfasst: Dienstag 24. September 2013, 22:05
von Hyperion
<offtopic>
Hui, da fühle ich mich ja fast ein wenig geehrt :-)

(Wobei der Contributor mal auf mein Tutorial hätte verweisen können - damit der Sinn dahinter klar wird ;-) )
</offtopic>

Re: SVG als Hintergrundbild von QMainWindow

Verfasst: Dienstag 24. September 2013, 22:13
von Malta

Re: SVG als Hintergrundbild von QMainWindow

Verfasst: Mittwoch 25. September 2013, 22:53
von Malta
Um den Fehler besser nachvollziehen zu können habe ich einen extra branch bei Github mit meinem Änderungen gemacht:
https://github.com/MarkusHackspacher/py ... ound/lotto

Die Zeilen im Post oben sind an dieser Stelle:
https://github.com/MarkusHackspacher/py ... py#L47-L51