Преобразование pyQt UI в python
есть ли способ преобразовать пользовательский интерфейс, сформированный с помощью qtDesigner, в версию python для использования без дополнительного файла?
Я использую Maya для этого пользовательского интерфейса, и преобразование этого файла пользовательского интерфейса в читаемую версию python для реализации было бы действительно здорово!
9 ответов
Если вы используете windows, папка 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
Я не уверен, что PyQt имеет такой скрипт, но после установки PySide в каталоге pythons есть скрипт "uic.py". Вы можете использовать этот скрипт для преобразования a .ui файл в a .файл py:
python uic.py input.ui -o output.py -x
на вопрос уже ответили, но если вы ищете ярлык во время разработки, в том числе это в верхней части вашего скрипта python сэкономит вам некоторое время, но в основном позволит вам забыть о том, что на самом деле нужно сделать преобразование.
import os #Used in Testing Script
os.system("pyuic4 -o outputFile.py inpuiFile.ui")
самый быстрый способ преобразования .ui to .py от терминала:
pyuic4 -x input.ui -o output.py
убедитесь, что у вас установлен pyqt4-dev-tools.
вам не нужно устанавливать PyQt4 со всеми его боковыми функциями, вам просто нужен сам пакет PyQt4. Внутри пакета вы можете использовать модуль pyuic.py ("C:\Python27\Lib\site-packages\PyQt4\uic") для преобразования файла пользовательского интерфейса.
C:\test > python C:\Python27x64\Lib\site-packages\PyQt4\uic\pyuic.py -помогите!--3-->
вы получите все перечисленные варианты:
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 с полным доступом. Наличие жесткого кода вашего пользовательского интерфейса не делает его очень гибким.
Я повторно использую много моего пользовательского интерфейса не только в Maya, также для Max, Nuke и т. д.. Если у вас есть чтобы изменить что-то конкретное программное обеспечение, вы должны попытаться наследовать класс (с родительским файлом ui) с более глобальной точки зрения и исправить или переопределить методы, которые вы должны настроить. Это экономит много рабочего времени. Дайте мне знать, если у вас возникнут еще вопросы.
обновление для тех, кто использует PyQt5 с python 3.x:
- открыть терминал (например. Powershell, cmd и т. д.)
- cd в папку с вашим .
- тип:
"C:\python\Lib\site-packages\PyQt5\pyuic5.bat" -x Trial.ui -o trial_gui.py
для случаев, когда PyQt5 не является переменной пути. Путь в кавычках "" представляет, где это.
Это должно работать!
недавно я столкнулся с той же проблемой. После поиска правильного пути к файлу pyuic4 с помощью File finder я запустил:
C:\Users\ricckli.qgis2\python\plugins\qgis2leaf>C:\OSGeo4W64\bin\pyuic4 -o ui_q gis2leaf.py ui_qgis2leaf.ui
Как вы можете видеть мой файл UI был помещен в эту папку...
Qt Creator был установлен отдельно, и файл pyuic4 был помещен туда с установщиком OSGEO4W