Шаг 8.
Библиотека PyQt5. Знакомство с PyQt5. Создание окна с помощью программы Qt Designer. Преобразование ui-файла в py-файл

    На этом шаге мы рассмотрим алгоритм такого преобразования способы подключения преобразованного файла.

    Вместо подключения ui-файла можно сгенерировать на его основе программный код на языке Python. Для этого служит утилита pyuic5.bat, расположенная в каталоге C:\Python34\Lib\site-packages\PyQt5. Запустим командную строку и перейдем в каталог, в котором находится ui-файл. Для генерации Python-программы выполним команду:

  pyuic5.bat MyForm.ui -о ui_MyForm.py

    В результате будет создан файл ui_MyForm.py, который мы уже можем подключить с помощью инструкции import. Внутри файла находится класс uiMyForm с двумя методами: setupUi() и retranslated(). При использовании процедурного стиля программирования следует создать экземпляр класса формы, а затем вызвать метод setupUi() и передать ему ссылку на экземпляр окна:

# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets

import sys, ui_MyForm
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
ui = ui_MyForm.Ui_MyForm()
ui.setupUi(window)
ui.btnQuit.clicked.connect(QtWidgets.qApp.quit)
window.show()
sys.exit(app.exec_())
Архив с файлами можно взять здесь.

    При использовании ООП-стиля программирования следует создать экземпляр класса формы, а затем вызвать метод setupUi() и передать ему указатель self.

# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets

import ui_MyForm

class MyWindow(QtWidgets.QWidget):
    def __init__(self, parent = None):
        QtWidgets.QWidget.__init__(self, parent)
        self.ui = ui_MyForm.Ui_MyForm()
        self.ui.setupUi(self)
        self.ui.btnQuit.clicked.connect(QtWidgets.qApp.quit)

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_()) 
Архив с файлами можно взять здесь.

    Класс формы можно указать во втором параметре в списке наследования - в этом случае он унаследует все методы класса формы.

# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets

import ui_MyForm

class MyWindow(QtWidgets.QWidget, ui_MyForm.Ui_MyForm):
    def __init__(self, parent = None):
        QtWidgets.QWidget.__init__(self, parent)
        self.setupUi(self)
        self.btnQuit.clicked.connect(QtWidgets.qApp.quit)

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_()) 
Архив с файлами можно взять здесь.

    Как видите, и в PyQt можно создавать формы, размещать компоненты с помощью мыши, а затем непосредственно подключать ui-файлы в программе или преобразовывать их в Python-код с помощью утилиты pyuic5.bat, - все это очень удобно. Тем не менее, чтобы полностью овладеть программированием на PyQt, необходимо уметь создавать код вручную. Поэтому в дальнейшем мы больше не станем задействовать программу Qt Designer.

    На следующем шаге мы рассмотрим модули PyQt5.




Предыдущий шаг Содержание Следующий шаг