SVG als Hintergrundbild von QMainWindow

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Malta
User
Beiträge: 83
Registriert: Samstag 8. Januar 2011, 23:51

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
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Mein erster Suchtreffer hat das hier geliefert. Auf eine Änderung der Fenstergröße sollte man dann natürlich reagieren und neu zeichnen.
Das Leben ist wie ein Tennisball.
Malta
User
Beiträge: 83
Registriert: Samstag 8. Januar 2011, 23:51

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)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

<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>
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Malta
User
Beiträge: 83
Registriert: Samstag 8. Januar 2011, 23:51

Malta
User
Beiträge: 83
Registriert: Samstag 8. Januar 2011, 23:51

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
Antworten