2013-08-25 1 views
23

Есть ли способ конвертировать ui, сформированный с помощью qtDesigner, в версию python для использования без дополнительного файла?Convert pyQt UI to python

Я использую Maya для этого пользовательского интерфейса, и преобразование этого файла пользовательского интерфейса в читаемую версию python для реализации будет действительно замечательным!

+0

в стек: http://stackoverflow.com/questions/2398800/linking-a-qtdesigner-ui -file-to-python-pyqt –

ответ

35

Вы можете использовать pyuic4 команды оболочки: pyuic4 input.ui -o output.py

+0

Как установить pyuic4? Это говорит, что «pyuic4» не распознается, я предполагаю, что мне нужно его установить? –

+0

Вы должны установить Qt и PyQt (или Pyside), чтобы иметь инструмент pyuic4, который преобразует ваш файл ui в файл Python. – Frodon

+3

Я знаю, что это старый вопрос, но в случае, если кто-то еще задается вопросом, установить pyuic4 на Ubuntu: 'sudo apt-get install pyqt4-dev-tools qt4-designer' –

2

Я не уверен, что PyQt имеет такой скрипт, но после установки PySide есть скрипт в каталоге сценариев pythons «uic.py». Вы можете использовать этот скрипт для преобразования файла .ui в .py файл:

python uic.py input.ui -o output.py -x 
+0

Я могу сделать это из майя или командной строки? –

+0

Вы видели мой ответ? –

+0

В некоторых системах это можно назвать pyside-uic и быть исполняемым. BTW, да, он будет запускаться из командной строки, поскольку он используется для разработки любого приложения, а не только для Maya. – Ben

8

Если вы используете окна, папка PyQt4 не в путь по умолчанию, вы должны пойти к нему, прежде чем пытаться запустить его:

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

или вызвать его, используя полный путь

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

Недавно я столкнулся с той же проблемой. После поиска правильного пути к файлу pyuic4 с помощью файла finder я побежал:

C: \ Users \ ricckli.qgis2 \ python \ plugins \ qgis2leaf> C: \ OSGeo4W64 \ bin \ pyuic4 -o ui_q gis2leaf. ру ui_qgis2leaf.ui

Как вы можете видеть, что мой файл был помещен пользовательский интерфейс в этой папке ...

QT Creator был установлен отдельно и файл pyuic4 был помещен туда с OSGEO4W установщиком

1

вы надеваете» t нужно установить PyQt4 со всеми его боковыми функциями, вам просто нужен пакет PyQt4. Внутри пакета вы можете использовать модуль pyuic.py («C: \ Python27 \ Lib \ site-packages \ PyQt4 \ uic») для преобразования вашего файла Ui.

C: \ тест> питон C: \ Python27x64 \ Lib \ сайт-пакеты \ PyQt4 \ МСЖД \ pyuic.py -помощь

Вы получите все варианты в списке:

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] 

Так что ваша команда будет выглядеть следующим образом:

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

Вы также можете использовать полные пути файлов в файл, чтобы преобразовать его.

Почему вы хотите его преобразовать? Я предпочитаю создавать виджеты в дизайнере и реализовывать их с помощью файла * .ui. Это значительно облегчает его редактирование позже. Вы также можете написать свои собственные плагины виджета и загрузить их в Qt Designer с полным доступом. Наличие жесткого кодирования ui не делает его очень гибким.

Я использую много своих ui не только в Maya, но и для Max, Nuke и т. Д. Если вам нужно что-то изменить, вам следует попытаться наследовать класс (с родительским ui-файлом) из более глобальную точку зрения и патч или переопределить методы, которые вы должны настроить. Это экономит много времени работы. Дайте мне знать, если у вас есть дополнительные вопросы.

1

Быстрый способ конвертировать .ui to.ру от терминала:

pyuic4 -x input.ui -o output.py

Убедитесь, что вы установили PyQt4-DEV-инструменты.

1

Вопрос был дан ответ, но если вы ищете ярлык во время разработки, в том числе это в верхней части вашего скрипта python, вы сэкономите некоторое время, но в основном можете забыть о том, что нужно сделать преобразование.

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

Для pyqt5 вы можете использовать

pyuic5 xyz.ui > xyz.py 

или

pyuic5 xyz.ui -o xyz.py