Итак, если я войду в QtDesigner и создаю пользовательский интерфейс, он будет сохранен как .ui файл. Как я могу сделать это как файл python или использовать его в python?
Связывание файла .ui с qtDesigner с python/pyqt?
Ответ 1
Другой способ использования .ui в вашем коде:
from PyQt4 import QtCore, QtGui, uic
class MyWidget(QtGui.QWidget)
...
#somewhere in constructor:
uic.loadUi('MyWidget.ui', self)
оба подхода хороши. Не забывайте, что если вы используете файлы ресурсов Qt (чрезвычайно полезные) для значков и т.д., Вы также должны скомпилировать его:
pyrcc4.exe -o ui/images_rc.py ui/images/images.qrc
Обратите внимание, что когда uic
компилирует интерфейс, он добавляет "import images_rc" в конец .py файла, поэтому вы должны скомпилировать ресурсы в файл с этим именем или переименовать его в сгенерированный код.
Ответ 2
Объединяя Макс ответ и сообщение в списке рассылки Shriramana Sharma, я создал небольшой рабочий пример для загрузки файла mywindow.ui
содержащего QMainWindow
(поэтому просто выберите создание главного окна в диалоге File-New
Qt Designer).
Это код, который загружает его:
import sys
from PyQt4 import QtGui, uic
class MyWindow(QtGui.QMainWindow):
def __init__(self):
super(MyWindow, self).__init__()
uic.loadUi('mywindow.ui', self)
self.show()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window = MyWindow()
sys.exit(app.exec_())
Ответ 3
Вам нужно сгенерировать файл python из вашего файла ui с помощью инструмента pyuic (site-packages\pyqt4\bin)
pyuic form1.ui > form1.py
с pyqt4
pyuic4.bat form1.ui > form1.py
Затем вы можете импортировать форму1 в свой script.
Ответ 4
Я нашел эту статью очень полезной.
http://talk.maemo.org/archive/index.php/t-43663.html
Я кратко опишу действия для создания и изменения файла .ui в файл .py, взятый из этой статьи.
- Запустите Qt Designer в меню "Пуск".
- В окне "Новая форма" создайте "Главное окно"
- От "Показать виджеты" в нижней части вашего "Меню виджетов" слева | добавьте "Виджет ярлыков". (Нажмите "Перетаскивание" ).
- Дважды щелкните по добавленному ярлыку ярлыков, чтобы изменить его название на "Hello World"
- в этот момент вы можете использовать горячую клавишу Control + R, чтобы увидеть, как она будет выглядеть.
- Добавьте кнопки или текст или другие виджеты, перетащив их, если хотите.
- Теперь сохраните форму. Файл- > Сохранить как- > "Hello World.ui" (Control + S также откроет
"Сохранить как" ). Обратите внимание на каталог, в котором вы сохранили "Hello World".ui
файл. (Я сохранил мой (C:) для удобства)
Файл создается и сохраняется, теперь мы будем генерировать код Python с помощью pyuic!
- В меню "Пуск" откройте окно команд.
- Теперь "cd" в каталог, где вы сохранили свой "Hello World.ui" . Для меня я просто должен был "cd \" и был в моей подсказке "C: > ", где был сохранен мой "Hello World.ui" .
- Когда вы попадаете в каталог, где хранится ваш файл, введите следующее.
- pyuic4 -x helloworld.ui -o helloworld.py
- Поздравляем!! Теперь у вас есть приложение python Qt4 GUI!
- Дважды щелкните файл helloworld.py, чтобы запустить его. (Я использую pyscripter и двойным кликом
он открывается в pyscripter, затем я "запускаю" файл оттуда)
Надеюсь, это поможет кому-то.
Ответ 5
Вы также можете использовать uic
в PyQt5 со следующим кодом.
from PyQt5 import uic, QtWidgets
import sys
class Ui(QtWidgets.QDialog):
def __init__(self):
super(Ui, self).__init__()
uic.loadUi('SomeUi.ui', self)
self.show()
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = Ui()
sys.exit(app.exec_())
Ответ 6
Вы можете конвертировать ваши .ui файлы в исполняемый файл python с помощью следующей команды.
pyuic4 -x form1.ui > form1.py
Теперь вы можете сразу выполнить файл python как
python3(whatever version) form1.py
Вы можете импортировать этот файл, и вы можете его использовать.
Ответ 7
По-моему, более чистый способ - сначала экспортировать в .py, как указано выше:
pyuic4 foo.ui > foo.py
И затем используйте его внутри своего кода (например, main.py
), например:
from foo import Ui_MyWindow
class MyWindow(QtGui.QDialog):
def __init__(self):
super(MyWindow, self).__init__()
self.ui = Ui_MyWindow()
self.ui.setupUi(self)
# go on setting up your handlers like:
# self.ui.okButton.clicked.connect(function_name)
# etc...
def main():
app = QtGui.QApplication(sys.argv)
w = MyWindow()
w.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
Этот способ дает возможность другим людям, которые не используют qt-designer для чтения кода, а также сохраняет код вашей функциональности вне foo.py
, который может быть перезаписан дизайнером. Вы просто ссылаетесь на класс ui
через MyWindow
, как показано выше.
Ответ 8
вы можете скомпилировать ui файлы, подобные этому
pyuic4 -x helloworld.ui -o helloworld.py
Ответ 9
Чтобы скомпилировать файлы .ui в .py файлы, я сделал:
python pyuic.py form1.ui > form1.py
Att.
Ответ 10
в pyqt5 для преобразования из файла пользовательского интерфейса в файл .py
pyuic5.exe youruifile.ui -o outputpyfile.py -x
Ответ 11
Использование Anaconda3 (сентябрь 2018 г.) и дизайнера QT 5.9.5. В конструкторе QT сохраните ваш файл как пользовательский интерфейс. Откройте Anaconda. Найдите ваш файл: cd C:.... (скопируйте/вставьте путь доступа к вашему файлу). Затем напишите: pyuic5 -x helloworld.ui -o helloworld.py(helloworld = имя вашего файла). Войти. Запустите Spyder. Откройте ваш файл .py.