python - pyuic4 - pyuic5 ui to py
Convertir pyQt UI a python (9)
¿Hay una manera de convertir un ui formado con qtDesigner a una versión de python para usar sin tener un archivo adicional?
¡Estoy usando Maya para esta interfaz de usuario, y convertir este archivo de interfaz de usuario en una versión de Python legible para implementar sería realmente genial!
Actualización para cualquiera que use PyQt5 con python 3.x:
- Terminal abierta (p. Ej., PowerShell, cmd, etc.)
- Cd en la carpeta con su archivo
.ui
. - Escriba:
"C:/python/Lib/site-packages/PyQt5/pyuic5.bat" -x Trial.ui -o trial_gui.py
para casos en los que PyQt5 no sea una variable de ruta. La ruta entre comillas "" representa donde está el archivopyuic5.bat
.
¡Esto debería funcionar!
La forma más rápida de convertir .ui a .py es desde el terminal:
pyuic4 -x input.ui -o output.py
Asegúrate de tener las herramientas pyqt4-dev instaladas.
La pregunta ya ha sido respondida, pero si está buscando un atajo durante el desarrollo, incluir esto en la parte superior de su script de Python le ahorrará algo de tiempo, pero le permitirá olvidarse de tener que realizar la conversión.
import os #Used in Testing Script
os.system("pyuic4 -o outputFile.py inpuiFile.ui")
Me he encontrado con el mismo problema recientemente. Después de encontrar la ruta correcta al archivo pyuic4 usando el buscador de archivos que he ejecutado:
C: / Users / ricckli.qgis2 / python / plugins / qgis2leaf> C: / OSGeo4W64 / bin / pyuic4 -o ui_q gis2leaf.py ui_qgis2leaf.ui
Como puedes ver, mi archivo ui fue colocado en esta carpeta ...
QT Creator se instaló por separado y el archivo pyuic4 se colocó allí con el instalador OSGEO4W
No estoy seguro de si PyQt tiene una secuencia de comandos como esta, pero después de instalar PySide hay una secuencia de comandos en el directorio de secuencia de comandos de pythons "uic.py". Puede usar este script para convertir un archivo .ui en un archivo .py:
python uic.py input.ui -o output.py -x
No tiene que instalar PyQt4 con todas sus características secundarias, solo necesita el paquete PyQt4. Dentro del paquete, puede usar el módulo pyuic.py ("C: / Python27 / Lib / site-packages / PyQt4 / uic") para convertir su archivo Ui.
C: / test> python C: / Python27x64 / Lib / site-packages / PyQt4 / uic / pyuic.py -help
Obtendrá todas las opciones enumeradas:
Usage: pyuic4 [options] <ui-file>
Options:
--version show program''s version number and exit
-h, --help show this help message and exit
-p, --preview show a preview of the UI instead of generating code
-o FILE, --output=FILE
write generated code to FILE instead of stdout
-x, --execute generate extra code to test and display the class
-d, --debug show debug output
-i N, --indent=N set indent width to N spaces, tab if N is 0 [default:
4]
-w, --pyqt3-wrapper generate a PyQt v3 style wrapper
Code generation options:
--from-imports generate imports relative to ''.''
--resource-suffix=SUFFIX
append SUFFIX to the basename of resource files
[default: _rc]
Entonces tu orden se verá así:
C:/test>python C:/Python27x64/Lib/site-packages/PyQt4/uic/pyuic.py test_dialog.ui -o test.py -x
También puede utilizar rutas de archivo completas a su archivo para convertirlo.
¿Por qué quieres convertirlo de todos modos? Prefiero crear widgets en el diseñador e implementarlos a través del archivo * .ui. Eso hace que sea mucho más cómodo editarlo más tarde. También puede escribir sus propios complementos de widgets y cargarlos en el Diseñador Qt con acceso completo. Tener su interfaz de usuario codificada no lo hace muy flexible.
Reutilizo gran parte de mi ui no solo en Maya, también para Max, Nuke, etc. Si tiene que cambiar algo específico del software, debe intentar heredar la clase (con el archivo ui parental) de un punto más global de Ver y parchar o anular los métodos que tiene que ajustar. Eso ahorra mucho tiempo de trabajo. Déjame saber si tienes más preguntas al respecto.
Para pyqt5 puedes usar
pyuic5 xyz.ui > xyz.py
o
pyuic5 xyz.ui -o xyz.py
Si está utilizando Windows, la carpeta PyQt4 no se encuentra en la ruta de forma predeterminada, debe acceder a ella antes de intentar ejecutarla:
c:/Python27/Lib/site-packages/PyQt4/something> pyuic4.exe full/path/to/input.ui -o full/path/to/output.py
o llámalo usando su ruta completa
full/path/to/my/files> c:/Python27/Lib/site-packages/PyQt4/something/pyuic4.exe input.ui -o output.py
Puede usar el comando pyuic4
en el shell: pyuic4 input.ui -o output.py