2014-03-19 4 views
5

Ich arbeite an Python-Projekt und ich habe ein Problem mit meiner .py-Datei, die aus .qrc-Datei entsprach. Zunächst möchte ich kurz mein Projekt erläutern.Eine .py-Datei, die aus .qrc-Datei kompiliert (mit pyside-rcc) funktioniert nicht

Ich habe meine Projekt-GUI in QtDesigner erstellt und verwende das Bild auch in der GUI. Dann erzeuge ich .py aus der .ui Datei mit pyside-uic und erzeuge .py Datei aus .qrc Datei mit pyside-rcc. Das Problem ist, wenn ich die .py-Datei (eine Bilddatei) verwende, werden Bilder nicht in meiner GUI angezeigt.

Weiß jemand, wie man dieses Problem löst?

Vielen Dank für Ihre Antwort. :)

Ps. Ich benutze PySide als meine GUI Sprache.

+0

Können Sie eine einfache Zusammenfassung über Ihren Code und Ihre qrc-Datei liefern? – cengizkrbck

Antwort

7

Haben Sie die Ressource tatsächlich zu Ihrem GUI-Projekt hinzugefügt?

von Grund auf neu starten, ist hier, wie es geht:

In Qt Designer, wählen Sie Ansicht> Resource Browser. Klicken Sie dann im Ressourcenbrowser auf die Schaltfläche Ressourcen bearbeiten. Von dort können Sie entweder eine neue resouce-Datei erstellen oder eine vorhandene öffnen. Wichtig ist, dass die Ressourcendatei auf die Ressourcen (z. B. Bilddateien) zugreifen kann, indem relative Pfade verwendet werden. Das bedeutet, dass sie sich entweder im selben Verzeichnis wie die Ressourcendatei oder in einem ihrer Unterverzeichnisse befinden müssen.

Sobald Sie die Ressourcendatei erstellt haben, fügen Sie ein Präfix (z. B. "Bilder") mithilfe der Schaltflächen unter dem rechten Fensterbereich hinzu, fügen Sie dann Ihre Bilder (oder was auch immer) hinzu und klicken Sie schließlich auf OK.

Wenn Sie nun einem Etikett eine Pixmap hinzufügen möchten, stellen Sie sicher, dass Sie das Bild aus Ihrer neuen Ressource auswählen, anstatt die Datei auf der Festplatte.

Die letzten Schritte bestehen darin, das GUI-Modul unter Verwendung von pyside-uic neu zu generieren und das Ressourcenmodul unter Verwendung von pyside-rcc zu generieren. Wenn Sie dies tun, stellen Sie sicher, dass die Ressourcen-Modul als „resource_rc.py“ im gleichen Verzeichnis als GUI-Modul gespeichert wird:

pyside-uic -o widget.py widget.ui 
    pyside-rcc -o resource_rc.py resource.qrc 

(PS: wenn Ihre Pakete in Ihrem Projekt verwenden, sollten Sie Verwenden Sie die --from-imports Option mit pyside-uic, um relative Importe zu erhalten).

+0

Ich folgte diesen Schritten genau, aber pyside-rcc Ergebnisse in dyld: Bibliothek nicht geladen: @ rpath/lib/QtCore.framework/Versionen/4/QtCore Referenziert von:/Users/jmason86/Library/Enthought/Canopy_64bit/Benutzer/bin/pyside-rcc Grund: Bild nicht gefunden Abbrechen Trap: 6 Alles ist in einem einzigen Verzeichnis zusammen. Ich habe auch versucht, das Bild in ein Unterverzeichnis namens Bilder mit allem anderen gleich zu bewegen. Kein Würfel. –

+0

@JamesPMason. Dein Problem hat nichts mit den Anweisungen zu tun, die ich gegeben habe. Es ist offensichtlich etwas nicht in Ordnung mit Ihrer Installation (aber ich weiß nicht genau was). – ekhumoro

+0

Sie haben Recht! Diese Anweisungen funktionierten perfekt, sobald ich diese wirklich merkwürdige Reparatur machte: http://stackoverflow.com/questions/28480902/pyside-rcc-dyd-library-not-loaded/28502438 –

Verwandte Themen