web-dev-qa-db-fra.com

Conversion de l'interface utilisateur de pyQt en python

Existe-t-il un moyen de convertir une interface utilisateur formée avec qtDesigner en une version python à utiliser sans fichier supplémentaire?

J'utilise Maya pour cette interface utilisateur, et convertir ce fichier d'interface utilisateur en une version lisible en python à implémenter serait vraiment génial!

33
Shannon Hochkins

Vous pouvez utiliser la commande pyuic4 sur le shell: pyuic4 input.ui -o output.py 

46
Katsu

Si vous utilisez Windows, le dossier PyQt4 ne se trouve pas dans le chemin par défaut, vous devez y accéder avant d'essayer de l'exécuter:

c:\Python27\Lib\site-packages\PyQt4\something> pyuic4.exe full/path/to/input.ui -o full/path/to/output.py

ou appelez-le en utilisant son chemin complet

full/path/to/my/files> c:\Python27\Lib\site-packages\PyQt4\something\pyuic4.exe input.ui -o output.py
10
hoylpraal

Le moyen le plus rapide de convertir .ui en .py est depuis le terminal:

pyuic4 -x input.ui -o output.py

Assurez-vous que pyqt4-dev-tools est installé.

4
chris mahn

Pour pyqt5, vous pouvez utiliser

pyuic5 xyz.ui > xyz.py 

ou

pyuic5 xyz.ui -o xyz.py
4
Awinash jaiswal

Je ne sais pas si PyQt a un script comme celui-ci, mais après avoir installé PySide, il existe un script dans le répertoire de script pythons "uic.py". Vous pouvez utiliser ce script pour convertir un fichier .ui en un fichier .py:

python uic.py input.ui -o output.py -x
4
Pouya

Vous avez déjà répondu à la question, mais si vous cherchez un raccourci pendant le développement, le placer en haut de votre script python vous fera gagner un peu de temps, mais vous laissera surtout oublier que vous devez réellement convertir.

import os #Used in Testing Script
os.system("pyuic4 -o outputFile.py inpuiFile.ui")
3
aoh

Vous n'avez pas besoin d'installer PyQt4 avec toutes ses fonctionnalités, vous avez juste besoin du paquet PyQt4 lui-même. Dans le paquet, vous pouvez utiliser le module pyuic.py ("C:\Python27\Lib\site-packages\PyQt4\uic") pour convertir votre fichier Ui.

C:\test> python C:\Python27x64\Lib\site-packages\PyQt4\uic\pyuic.py -help

Vous obtiendrez toutes les options énumérées:

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]

Donc, votre commande ressemblera à ceci:

C:\test>python C:\Python27x64\Lib\site-packages\PyQt4\uic\pyuic.py test_dialog.ui -o test.py -x

Vous pouvez également utiliser des chemins d'accès complets à votre fichier pour le convertir.

Pourquoi voulez-vous le convertir quand même? Je préfère créer des widgets dans le concepteur et les implémenter via le fichier * .ui. Cela le rend beaucoup plus confortable pour le modifier plus tard. Vous pouvez également écrire vos propres plugins de widgets et les charger dans Qt Designer avec un accès complet. Avoir votre interface utilisateur codée en dur ne la rend pas très flexible. 

Je réutilise une grande partie de mes interfaces utilisateur non seulement dans Maya, mais aussi dans le cadre de Max, Nuke, etc. Si vous devez modifier un logiciel spécifique, vous devez essayer d'hériter de la classe (avec le fichier d'interface utilisateur parent) à partir d'un point de vue plus global. affichez et corrigez ou substituez les méthodes à ajuster. Cela économise beaucoup de temps de travail. Faites-moi savoir si vous avez d'autres questions à ce sujet.

2
MagSec

Mise à jour pour toute personne utilisant PyQt5 avec Python 3.x:

  1. Terminal ouvert (p. Ex. Powershell, cmd, etc.)
  2. cd dans le dossier avec votre fichier .ui.
  3. Tapez: "C:\python\Lib\site-packages\PyQt5\pyuic5.bat" -x Trial.ui -o trial_gui.py Dans les cas où PyQt5 n'est pas une variable de chemin. Le chemin entre guillemets "" indique où se trouve le fichier pyuic5.bat.

Cela devrait marcher!

1
Rick M.

Pour Ubuntu, cela fonctionne pour les commandes suivantes:

pyuic5 filename.ui -o filename.py -x

Aucune méthode principale dans le fichier, impossible d'exécuter individuellement ... essayez

pyuic5 filename.ui -o filename.py

Considérez, j'utilise PyQT5.

0
Kandy

J'ai rencontré le même problème récemment. Après avoir trouvé le bon chemin d'accès au fichier pyuic4 à l'aide du Finder de fichiers que j'ai exécuté:

C:\OSGeo4W64\bin\pyuic4 -o\ui_q gis2leaf.py ui_qgis2leaf.ui

Comme vous pouvez le constater, mon fichier d'interface utilisateur a été placé dans ce dossier ...

QT Creator a été installé séparément et le fichier pyuic4 y a été placé avec le programme d'installation OSGEO4W.

0
Riccardo