2013-08-25 12 views
23

Gibt es eine Möglichkeit, ein mit qtDesigner erstelltes UI in eine Python-Version zu konvertieren, die ohne eine zusätzliche Datei verwendet werden kann?Konvertieren von pyQt UI nach Python

Ich benutze Maya für diese UI, und die Umwandlung dieser UI-Datei in eine lesbare Python-Version zu implementieren wäre wirklich toll!

+0

in Stack verwenden können: http://stackoverflow.com/questions/2398800/linking-a-qtdesigner-ui -file-to-python-pyqt –

Antwort

35

Sie pyuic4 Befehl Shell verwenden: pyuic4 input.ui -o output.py

+0

Wie kann ich Pyuic4 installieren? Es heißt "Pyuic4" wird nicht erkannt, ich gehe davon aus, dass ich es installieren muss? –

+0

Sie müssen Qt und PyQt (oder Pyside) installieren, um das Tool 'pyuic4' zu haben, das Ihre ui-Datei in eine Python-Datei konvertiert. – Frodon

+3

Ich weiß, das ist eine alte Frage, aber falls jemand sich fragt, pyuic4 unter Ubuntu zu installieren: 'sudo apt-get installiere pyqt4-dev-tools qt4-designer' –

2

Ich bin nicht sicher, ob PyQt ein solches Skript hat, aber nachdem Sie PySide installiert haben, gibt es ein Skript im Pythons Skriptverzeichnis "uic.py". 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 
+0

Tue ich dies von Maya oder Kommandozeile? –

+0

hast du meine Antwort gesehen? –

+0

Auf einigen Systemen kann dies als pyside-uic bezeichnet werden und ausführbar sein. BTW, ja, es würde von der Befehlszeile aus ausgeführt werden, da es für jede App-Entwicklung verwendet wird, nicht nur für Maya. – Ben

8

Wenn Sie Windows verwenden, ist die PyQt4 Ordner nicht in der Pfad standardmäßig, müssen Sie gehen, um es vor dem Versuch, es zu laufen:

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

oder rufen sie den vollständigen Pfad mit

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

Ich habe in letzter Zeit das gleiche Problem aufgetreten. den richtigen Pfad zu der pyuic4 Datei mit dem Datei-Finder Nach dem Auffinden Ich habe ran:

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

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

QT Creator wurde getrennt und die pyuic4-Datei installiert wurde dort mit dem OSGeo4W Installateur platziert

1

Sie don‘ t müssen PyQt4 mit all seinen Seitenfunktionen installieren, Sie brauchen nur das PyQt4-Paket selbst. 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 werden alle Optionen aufgelistet bekommen:

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] 

Also Ihr Befehl wird wie folgt aussehen:

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

Sie auch vollständige Dateipfade zu Ihrer Datei verwenden könnte es zu konvertieren.

Warum möchten Sie es trotzdem konvertieren? Ich bevorzuge es, Widgets im Designer zu erstellen und über die * .ui-Datei zu implementieren. Das macht es viel komfortabler, es später zu bearbeiten. Sie können auch eigene Widget-Plugins schreiben und diese mit vollem Zugriff in den Qt Designer laden. Wenn Sie Ihr UI hart codiert haben, ist es nicht sehr flexibel.

Ich benutze viele meiner UIs nicht nur in Maya, auch für Max, Nuke, etc .. Wenn Sie etwas Software-spezifisch ändern müssen, sollten Sie versuchen, die Klasse (mit der Parented-UI-Datei) von a zu erben mehr globale Sicht und patch oder überschreiben Sie die Methoden, die Sie anpassen müssen. Das spart viel Arbeitszeit. Lass es mich wissen, wenn du weitere Fragen hast.

1

Der schnellste Weg, um .ui zu konvertieren.py ist von der Klemme:

pyuic4 -x input.ui -o output.py

Stellen Sie sicher, Sie haben PyQt4-dev-Tools installiert.

1

Die Frage wurde bereits beantwortet, aber wenn Sie nach einer Verknüpfung während der Entwicklung suchen, spart Ihnen dies am Anfang Ihres Python-Skripts etwas Zeit, aber Sie werden meistens vergessen, die Konvertierung tatsächlich durchzuführen.

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

Für pyqt5 Sie

pyuic5 xyz.ui > xyz.py 

oder

pyuic5 xyz.ui -o xyz.py