Umbau von kompilierten Resoucen zu dynamischen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten