Cómo incluir icons en la aplicación cuando se utiliza Pyinstaller 2.0, PySide 1.1.2 Bindings and Qt 4.8

cómo se ve el guión lo que_seguro_como

¿Cómo debería ser la aplicación que funciona?

introduzca la descripción de la imagen aquí

Antes de publicar he mirado la siguiente pregunta y traté de usarla como una guía para hacer que mi script funcione correctamente, pero fue de uso marginal.

PyInstaller no cargará las imágenes de PyQt en la GUI

lo mejor que hizo fue incluir mis icons en el directorio resultante de la siguiente manera

(icons incluidos imagen aquí)

y el siguiente no tengo ni idea de lo que está diciendo, pero creo que puede resolver mi problema si supiera lo que realmente estaba haciendo, empaquetando archivos de datos con PyInstaller (–onefile)

Tengo rtfm y la mayor parte va por encima de mi cabeza, lamentablemente. La siguiente sección que creo que pertenece a mi pregunta

http://www.pyinstaller.org/wiki/Recipe/CollectDatafiles

No tengo idea de cómo implementarlo realmente en mi archivo de especificaciones

lo mismo ocurre con el siguiente http://www.pyinstaller.org/export/v2.0/project/doc/Manual.html?format=raw#accessing-data-files

Acceder a archivos de datos

He hecho lo siguiente y variaciones de él, incluyendo el uso del parámetro -F

Convertí mi archivo mainWindow.ui usando pyside-uic.exe para convertirlo en el archivo mainGui.py

luego convirtió icons.qrc en icons_rc.py utilizando pyside-rcc.exe para realizar la conversión

(nota: convertí el archivo después de poner una copia del archivo ejecutable originalmente en la carpeta PySide en mi carpeta C: \ Python27 \ Scripts que está en mi ruta para poder llamarla desde cualquier lugar)

Guardo mis icons en la carpeta de icons

para hacer el ejecutable en mi consola usando Pyinstaller, he usado el siguiente comando para hacer mi archivo de especificaciones

C: \ Pyinstaller-2.0> utilidades de Python \ Makespec.py –windowed –name = “16TangoTest” C: \ Exmake \ 16MainWindowVideo.py

Una vez que se crea el archivo de especificaciones, lo recorte de la carpeta pyinstaller y lo agrego a mi carpeta Exmake

Luego lo modifico para incluir mi carpeta de icons usando

Árbol (C: \ Exmake \ icons), y adjúntelo para recostackrlo en la línea arriba de a.binaries

El manual y la primera respuesta anterior indican que tengo que modificar mi archivo de especificaciones para que el progtwig de instalación de py vea y encuentre mis íconos como lo he hecho en la imagen de abajo. modificado_spec

todo lo que hizo fue incluir mis íconos en el directorio dist con la aplicación aún sin mostrarlos como en la primera imagen de arriba

Luego hago el ejecutable ejecutando lo siguiente en la consola C: \ Pyinstaller-2.0> python pyinstaller.py C: \ Exmake \ 16TangoTest.spec y eso crea la carpeta que se ve en la primera imagen, los icons están incluidos, pero carpeta pero no la aplicación cuando se ejecuta

Ok, respuesta final, resulta que Qt necesita que el siguiente archivo qico4.dll sea diferente para Qt5, al hacer su GUI en QtDesigner carga automáticamente todos los complementos que necesita, incluido el complemento de imagen anterior, sin embargo, al convertir el archivo en un script de Python no lo incluye a menos que agregue el siguiente código en su script

#:Loads the qico plug-in lets you use .ico icons QPlugin = QPluginLoader("qico4.dll") 

El siguiente texto puede ayudar a otros en diferentes situaciones.

Esta es una respuesta parcial a mi propia pregunta. Me gustaría agradecer a Blender arriba, la respuesta corta es que tiene que convertir sus icons de .ico en archivos .png, el problema es que tiene que hacer todo el proceso para hacer su De nuevo, estos son los pasos que tomé. Primero fui a la carpeta donde tenía mis íconos y los convertí en froom .ico en íconos .png. Usé la herramienta que obtuve aquí http://www.towofu.net/soft /e-aicon.php Encontré esto en este sitio … Me encanta stackoverflow..ahem

una vez que sus íconos se conviertan al formato .png, debe cambiar su archivo .qrc donde tenga la información de su ícono y actualizarlo con la información del ícono nuevo, le aconsejo hacerlo desde cero; una vez que tenga su nuevo archivo icons.qrc, entonces abra su archivo .ui en QtDesinger y borre todas las instancias de sus icons antiguos y luego proceda a actualizarlos con los icons recién formateados utilizando el icono / archivo de recursos.

Después de que todos sus íconos se hayan actualizado, guárdelos y continúe con el flujo de trabajo de conversión, es decir, convierta su ‘su_archivo.ui’ a ‘el_file_convertido_convertido’ usando el conversor pyside-uic.exe.

Luego convierta su archivo ‘icons.qrc’ en un ‘icons_rc.py’ usando el comando pyside-rcc.exe

al final de este proceso, solo debe necesitar su carpeta de icons con sus icons .png, su archivo icons_rc.py y su script de aplicación.

Después de eso, puede seguir utilizando el Pyinstaller-2.0 según el manual.

Como he dicho, es una respuesta parcial porque funciona, sin embargo, si alguien más pudiera decirme o explicarme cómo hacer que funcione con mis archivos .ico originales, sospecho que no tendría que volver a analizar todo el proceso.

Después de más investigaciones, esta página fue especialmente útil http://sofes.miximages.com/python/el mismo problema que tú. Parece que faltan todos los íconos cuando, después de que pyinstaller haya creado mi ejecutable (pyinstaller versión 2.1 y PySide 1.2.1). Sin embargo, se mostró uno de .png.

Por lo tanto, una posible solución alternativa sería utilizar .png en lugar de .ico para los íconos de PySide, y funcionará en ambos lados (python y ejecutable).

Como ejemplo:

 QPushButton(QIcon("./icons/clear.png"),' &Clear',self.app_wgt)