Подтвердить что ты не робот

Преобразование пользовательского интерфейса pyQt в python

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

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

4b9b3361

Ответ 1

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

Ответ 2

Если вы используете окна, папка 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

Ответ 3

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

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

Ответ 4

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

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

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

Usage: pyuic4 [options] <ui-file>

Options:
  --version             show program 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 файла) из более глобальной точки зрения и патча или переопределить методы, которые вы должны настроить. Это экономит много времени работы. Дайте мне знать, если у вас есть дополнительные вопросы.

Ответ 5

Самый быстрый способ конвертировать .ui в .py из терминала:

pyuic4 -x input.ui -o output.py

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

Ответ 6

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

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

Ответ 7

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

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

Как вы можете видеть, мой файл ui был помещен в эту папку...

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

Ответ 8

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

pyuic5 xyz.ui > xyz.py 

или

pyuic5 xyz.ui -o xyz.py