Klappt es, wenn du einfach ein QLabel auf den Button setzt und dem Label dein Bild zuweist? Größe und Position könntest du dann ja vom Button übernehmen. Du müsstest nur noch zusätzlich reagieren, wenn der Button neugezeichnet werden muss, d.h. dass dein Label dann auch angepasst werden muss.
EDIT:
Wobei QIcon() doch an sich schon seit längerem SVG-Dateien verarbeiten kann. Führt das bei dir zu einer Fehlermeldung oder warum deine Frage?
Ich habe es jetzt wie folgt gelöst. Der Umweg über eine Datei gefällt mir zwar nicht sonderlich. Aber wenigstens funktioniert es.
Das lcars Projekt liegt auf github, und ist noch ganz am Anfang: https://github.com/StowasserH/pylcars
@Kopakpy: warum renderst Du jetzt das SVG in ein PNG und benutzt nicht das SVG direkt? Um temporäre Dateien zu erzeugen gibt es das Modul `tempfile`. Zum Code: eingerückt wird immer mit 4 Leerzeichen pro Ebene und nicht mal 4 und mal 2. `if` ist keine Funktion, die überflüssigen Klammern gehören weg. Um Pfade zusammenzusetzen nimmt man os.path.join. Zum Typvergleich nimmt man `isinstance` oder läßt die überflüssige Prüfung gleich ganz weg, Qt wird sich schon beschweren, wenn es mit `size` nichts anzufangen weiß. `AttributeError` ist dafür auch der falsche Fehler, hier würde es sich ja um einen TypeError handeln. Hast Du es schon mit setIcon versucht?
Danke für den codereview. Ich werde ein paar Sachen ändern
Wenns schon nicht im Speicher geht wollte ich die erzeugten Dateien dann auch gar nicht mehr temporär ablegen. So sind sie wenigstens gecached. Das ist auch der Grund warum ich PNGs exportiere.
Vor allem mit dem raspi ist es von Vorteil die Dateien auf der Speicherkarte zu lassen, und nicht immer wieder neu zu schreiben.
setIcon habe ich probiert, es hat auch soweit funktioniert. Allerdings ist das Icon dann nicht im Hintergrund d.H. ein setText überschreibt das Icon teilweise wieder.