Hi,
ich verwende Python 3 mit dem aktuellsten PyQt.
Ich habe mit setWindowIcon() an mehreren Stellen im Code Icons für meine GUI definiert.
Weiters zeige ich mit QMovie ein gif an.
Leider funzt das nur auf meinem Rechner. Sobald man das Programm auf einem anderen Rechner ausführt sieht man weder Icon noch gif.
Ich habe bereits absolute und relative Pfade verwendet. Die Rechner haben Python nicht installed sondern greifen auf eine Installation im Netzwerk zu.
Ideen dazu ?
Danke im Vorraus !
Icons nur auf Entwicklungsmaschine angezeigt.
@patmaster: Offensichtlich werden die Symbole nicht gefunden. Warum, kann man Dir ohne Quelltext und Informationen über die Installation nicht sagen.
Der komplette Quelltext wäre wohl etwas viel deswegen hier die Sachen wo ich referenziere, wobei grabber.ico und load.gif im selben Verzeichnis wie die pys liegen:
Falls wirklich der komplette Code benötigt http://pastebin.com/2JB2yGTf
meta_ress.py und xmlhandler.py hab ich nicht gepastet weil die eigentlich nix mit der gui zu tun haben.
Zur Installation: Ich habe einfach meine lokale Installation auf ein Netzlaufwerk gepackt und rufe die py's mit der exe von dort auf. Die user kopieren sich dann noch 1-2 dlls und das wars.
Code: Alles auswählen
self.setWindowIcon(QtGui.QIcon('grabber.ico'))
Code: Alles auswählen
self.movie = QMovie("load.gif", QByteArray(), self)
meta_ress.py und xmlhandler.py hab ich nicht gepastet weil die eigentlich nix mit der gui zu tun haben.
Zur Installation: Ich habe einfach meine lokale Installation auf ein Netzlaufwerk gepackt und rufe die py's mit der exe von dort auf. Die user kopieren sich dann noch 1-2 dlls und das wars.
@patmaster: Relative Pfade hängen vom Arbeitsverzeichnis ab, sprich, jeder Nutzer müsste das Programm aus demselben Verzeichnis heraus starten. Nutze .applicationDirPath(), um das Verzeichnis des Programms herauszufinden, und lade Deine Symbole relativ zu diesem Verzeichnis (siehe "os.path.join()").
Danke für den Tipp, hat aber leider nix gebracht.lunar hat geschrieben:@patmaster: Relative Pfade hängen vom Arbeitsverzeichnis ab, sprich, jeder Nutzer müsste das Programm aus demselben Verzeichnis heraus starten. Nutze .applicationDirPath(), um das Verzeichnis des Programms herauszufinden, und lade Deine Symbole relativ zu diesem Verzeichnis (siehe "os.path.join()").
Als Pfad hat es mir den Installfolder im Netzwerk ausgespuck. Ich hab dann relativ dazu den Pfad zu den icons angegeben, hatte damit aber leider keinen Erfolg.
Wenn es am Pfad liegen würde, sollten dann nicht zumindest absolute Pfade funktionieren ?...tun sie nämlich nicht.
@patmaster: Zeige bitte den Quelltext mit absoluten Pfaden…
Nutzt Du py2exe? Falls ja, stelle sicher, dass die in der erzeugten EXE enthaltene Qt-Version vollständig ist, insbesondere, dass sie alle Image-Plugins enthält.
Nutzt Du py2exe? Falls ja, stelle sicher, dass die in der erzeugten EXE enthaltene Qt-Version vollständig ist, insbesondere, dass sie alle Image-Plugins enthält.
Ich nutze kein py2exe
hier mit absoluten Pfaden: http://pastebin.com/wCRTWNHn
Ich hab jetzt versucht mit dem ressource System zu arbeiten.
Habe also im Designer eine ressoruce erstellt und mit pyrcc4 kompiliert, wobei das rauskommt:
Referenzieren tu ich nun so:
Haut wieder bei mir am Rechner hin und sonst bei keinem 
Wäre für Hilfe sehr dankbar !
hier mit absoluten Pfaden: http://pastebin.com/wCRTWNHn
Ich hab jetzt versucht mit dem ressource System zu arbeiten.
Habe also im Designer eine ressoruce erstellt und mit pyrcc4 kompiliert, wobei das rauskommt:
Code: Alles auswählen
# -*- coding: utf-8 -*-
# Resource object code
#
# Created: Do 12. Jul 12:57:49 2012
# by: The Resource Compiler for PyQt (Qt v4.8.2)
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore
qt_resource_data = b"\
\x00\x00\xc2\xf2\
\x00\
\x05\xa5\x96\x78\x9c\xec\xbd\x09\x70\x54\xd7\x95\x3f\xcc\x7c\x19\
\x7f\xf9\xa7\x5c\x2e\x4f\x2a\x95\x4a\xa5\x5c\xf9\x3c\x53\xa9\x54\
...noch sehr viel mehr davon...
\x05\x77\x43\x96\
\x00\x6c\
\x00\x6f\x00\x61\x00\x64\x00\x2e\x00\x67\x00\x69\x00\x66\
"
qt_resource_struct = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x01\
\x00\x00\x00\x12\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\
\x00\x00\x00\x3c\x00\x00\x00\x00\x00\x01\x00\x00\xc2\xf6\
\x00\x00\x00\x20\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
"
def qInitResources():
QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
def qCleanupResources():
QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data)
qInitResources()
Code: Alles auswählen
self.setWindowIcon(QtGui.QIcon(":icon/grabber.ico"))

Wäre für Hilfe sehr dankbar !