Seite 1 von 1

Umbau von kompilierten Resoucen zu dynamischen

Verfasst: Samstag 29. Oktober 2011, 15:33
von Leonidas
Hi,

Ich habe hier ein PyQt4-Programm rumliegen, dass ich gern auf UI-Files und dynamische Resourcen umstellen möchte. Allerdings hab ich da einige Fragen:
  • Seitdem ich die UI-Files statt der kompilierten Dateien hernehme, werden die Bilder nicht mehr aus der kompilierten Python-Datei geladen. Das ist mir eigentlich herzlich egal, da ich die loswerden will, aber wie? Am liebsten würde ich die Bilder einfach aus dem Dateisystem laden. Was sollte ich da beim Designer einstellen, und wie bekomm ich die dann zur Laufzeit geladen?
  • (der Punkt hat weniger mit PyQt zu tun, dennoch:) Wie lade ich die Ressourcen-Dateien (Bilder, UI) am besten? Sollte ich da mit `pkg_resources` arbeiten, oder ist das Overkill und ich sollte lieber den Pfad aus dem Package auslesen?

Re: Umbau von kompilierten Resoucen zu dynamischen

Verfasst: Samstag 29. Oktober 2011, 16:34
von lunar
@Leonidas: Wenn Du UI-Dateien dynamisch lädst, musst Du die zugehörigen Qt-Ressourcen manuell laden, indem Du das kompilierte Ressourcen-Modul importierst. Wie das geht, steht in der PyQt-Dokumentation. Wenn Du die Bilder selbst auch dynamisch laden möchtest, kannst Du sie nicht im Designer zuweisen. Stattdessen musst Du sie manuell im Code laden und setzen.

Was den zweiten Punkt anbelangt, so hat mir bisher immer das Laden über "__file__" und relative Pfade gelangt.

Re: Umbau von kompilierten Resoucen zu dynamischen

Verfasst: Samstag 29. Oktober 2011, 17:57
von Leonidas
lunar hat geschrieben:@Leonidas: Wenn Du UI-Dateien dynamisch lädst, musst Du die zugehörigen Qt-Ressourcen manuell laden, indem Du das kompilierte Ressourcen-Modul importierst. Wie das geht, steht in der PyQt-Dokumentation. Wenn Du die Bilder selbst auch dynamisch laden möchtest, kannst Du sie nicht im Designer zuweisen. Stattdessen musst Du sie manuell im Code laden und setzen.
Gut, alles klar; dann werd ich sie manuell setzen.
lunar hat geschrieben:Was den zweiten Punkt anbelangt, so hat mir bisher immer das Laden über "__file__" und relative Pfade gelangt.
Hmm, ja, dann werd ich mir die Ressourcen so aus dem Package fischen. Dachte dass es da eventuell inzwischen irgendeine tollere Lösung gibt.