Seite 1 von 1
Icons nur auf Entwicklungsmaschine angezeigt.
Verfasst: Donnerstag 12. Juli 2012, 09:55
von patmaster
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 !
Re: Icons nur auf Entwicklungsmaschine angezeigt.
Verfasst: Donnerstag 12. Juli 2012, 12:08
von lunar
@patmaster: Offensichtlich werden die Symbole nicht gefunden. Warum, kann man Dir ohne Quelltext und Informationen über die Installation nicht sagen.
Re: Icons nur auf Entwicklungsmaschine angezeigt.
Verfasst: Donnerstag 12. Juli 2012, 12:43
von patmaster
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.
Re: Icons nur auf Entwicklungsmaschine angezeigt.
Verfasst: Donnerstag 12. Juli 2012, 12:53
von lunar
@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()").
Re: Icons nur auf Entwicklungsmaschine angezeigt.
Verfasst: Donnerstag 12. Juli 2012, 13:11
von patmaster
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()").
Danke für den Tipp, hat aber leider nix gebracht.
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.
Re: Icons nur auf Entwicklungsmaschine angezeigt.
Verfasst: Donnerstag 12. Juli 2012, 13:38
von lunar
@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.
Re: Icons nur auf Entwicklungsmaschine angezeigt.
Verfasst: Donnerstag 12. Juli 2012, 13:40
von patmaster
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:
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()
Referenzieren tu ich nun so:
Haut wieder bei mir am Rechner hin und sonst bei keinem
Wäre für Hilfe sehr dankbar !
Re: Icons nur auf Entwicklungsmaschine angezeigt.
Verfasst: Freitag 13. Juli 2012, 08:51
von patmaster
Okay Problem gelöst

.
Ich hab das ganze jetzt mit cx_freeze deployed und alles haut wunderbar hin.
Hätt ich gleich machen sollen, das mit der Installation auf nem Netzlaufwerk is eh doof.