wake-up-neo.net

Konvertieren Sie pyQt-Benutzeroberfläche in Python

Gibt es eine Möglichkeit, ein mit qtDesigner gebildetes Ui in eine Python-Version zu konvertieren, ohne eine zusätzliche Datei zu verwenden?

Ich verwende Maya für diese Benutzeroberfläche, und das Konvertieren dieser Benutzeroberfläche in eine lesbare Python-Version zum Implementieren wäre wirklich großartig!

33

Sie können den Befehl pyuic4 für Shell verwenden: pyuic4 input.ui -o output.py 

46
Katsu

Wenn Sie Windows verwenden, befindet sich der PyQt4-Ordner standardmäßig nicht im Pfad. Sie müssen dazu vorgehen, bevor Sie ihn ausführen.

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

oder nennen Sie es mit seinem vollständigen Pfad

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

Der schnellste Weg zum Konvertieren von .ui in .py ist vom Terminal:

pyuic4 -x input.ui -o output.py

Stellen Sie sicher, dass Sie pyqt4-dev-tools installiert haben.

4
chris mahn

Für pyqt5 können Sie verwenden

pyuic5 xyz.ui > xyz.py 

oder

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

Ich bin nicht sicher, ob PyQt ein solches Skript hat, aber nachdem Sie PySide installiert haben, befindet sich im Skript-Verzeichnis "uic.py" ein Skript. Sie können dieses Skript verwenden, um eine .ui-Datei in eine .py-Datei zu konvertieren:

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

Die Frage wurde bereits beantwortet, aber wenn Sie während der Entwicklung nach einer Verknüpfung suchen, sparen Sie etwas Zeit, wenn Sie diese oben in Ihrem Python-Skript verwenden, aber meistens vergessen, dass Sie die Konvertierung tatsächlich durchführen müssen.

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

Sie müssen PyQt4 nicht mit all seinen Nebenfunktionen installieren, Sie benötigen lediglich das PyQt4-Paket. Innerhalb des Pakets können Sie das Modul pyuic.py ("C:\Python27\Lib\site-packages\PyQt4\uic") verwenden, um Ihre Ui-Datei zu konvertieren.

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

Sie erhalten alle Optionen aufgelistet:

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]

Ihr Befehl wird also so aussehen:

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

Sie können auch vollständige Dateipfade zu Ihrer Datei verwenden, um sie zu konvertieren.

Warum willst du es trotzdem konvertieren? Ich ziehe es vor, Widgets im Designer zu erstellen und sie mit der * .ui-Datei zu implementieren. Das macht es viel komfortabler, es später zu bearbeiten. Sie können auch Ihre eigenen Widget-Plugins schreiben und sie mit vollem Zugriff in den Qt Designer laden. Das Festcodieren Ihrer UI macht es nicht sehr flexibel. 

Ich verwende viele meiner UIs nicht nur in Maya, sondern auch für Max, Nuke usw. Wenn Sie etwas Software-spezifisches ändern müssen, sollten Sie versuchen, die Klasse (mit der übergeordneten UI-Datei) von einem globaleren Punkt aus zu erben Anzeigen und Patchen oder Überschreiben der Methoden, die Sie anpassen müssen. Das spart viel Arbeitszeit. Lassen Sie mich wissen, wenn Sie weitere Fragen dazu haben.

2
MagSec

Update für alle, die PyQt5 mit Python 3.x verwenden:

  1. Offenes Terminal (zB Powershell, cmd etc.)
  2. cd in den Ordner mit Ihrer .ui-Datei.
  3. Geben Sie: "C:\python\Lib\site-packages\PyQt5\pyuic5.bat" -x Trial.ui -o trial_gui.py Für Fälle ein, in denen PyQt5 keine Pfadvariable ist. Der Pfad in Anführungszeichen "" gibt an, wo sich die pyuic5.bat-Datei befindet.

Das sollte funktionieren!

1
Rick M.

Für Ubuntu funktioniert es mit den folgenden Befehlen: Wenn einzelne Dateien Hauptmethoden enthalten sollen, um die Dateien einzeln auszuführen, kann dies zu Testzwecken sein.

pyuic5 filename.ui -o filename.py -x

Keine Hauptmethode in der Datei, kann nicht einzeln ausgeführt werden

pyuic5 filename.ui -o filename.py

Bedenken Sie, ich verwende PyQT5.

0
Kandy

Ich bin in letzter Zeit auf das gleiche Problem gestoßen. Nachdem ich den richtigen Pfad zur pyuic4-Datei mit dem Finder gefunden habe, den ich ausgeführt habe:

C:\Benutzer\ricckli.qgis2\python\plugins\qgis2leaf> C:\OSGeo4W64\bin\pyuic4 -o ui_q gis2leaf.py ui_qgis2leaf.ui

Wie Sie sehen, wurde meine UI-Datei in diesem Ordner abgelegt ...

QT Creator wurde separat installiert und die pyuic4-Datei wurde mit dem OSGEO4W-Installationsprogramm dort abgelegt

0
Riccardo