Для создания оконного приложения на Python используются библиотеки Tkinter и PyQt. Мы будем использовать библиотеку PyQt. Эта библиотека более сложная чем Tkinter , но в тоже время при большей сложности у нее больше возможностей.
Создавать окно можно несколькими способами:
- Ручной ввод линейного кода приложения
- Ручной ввод кода через ООП-стиль написания кода
- Создание окна с помощью программы Qt Designer и использования ui файла.
- Создание окна с помощью программы Qt Designer и преобразования ui файла в py файл.
В той статье создадим приложение первым способом.
Для начала необходимо подключить необходимые библиотеки:
from PyQt5 import QtWidgets
import sys
Создаём объект приложения в виде экземпляра класса QApplication.
app = QtWidgets.QApplication(sys.argv)
Создаем объект окна в виде экземпляра класса QWidget
win = QtWidgets.QWidget()
Задаём текст для заголовка окна через метод setWindowTitle
win.setWindowTitle("Моё первое окно на PyQt")
Через метод resize задаём минимальные размеры окна
win.resize(350, 70)
В первом параметре размера задаётся ширина окна, во втором параметре его высота. При этом эти размеры являются рекомендуемые и если компоненты окна не помещаются в эти размеры, то оно будет автоматически увеличено.
Далле создадим два компонента окна - надпись (Label), кнопку (PushButton) и вертикальный контейнер (VBoxLayout).
label = QtWidgets.QLabel("<center>Привет, я открылось</center>")
btn = QtWidgets.QPushButton("Закрыть меня")
vbox = QtWidgets.QVBoxLayout()
Надпись и кнопку вложим в вертикальный контейнер.
vbox.addWidget(label)
vbox.addWidget(btn)
Добавляем контейнер в основное окно с помощью метода setLayout.
win.setLayout(vbox)
Назначаем обработчик сигнала кнопки clicked() при её нажатии.
btn.clicked.connect(app.quit)
Обработчик выполняет немедленное завершение работы через метод quit()
Выводим на экран окно и все его компоненты через метод show()
win.show()
Последней строкой запускаем бесконечный цикл обработки событий в приложении.
sys.exit(app.exec_())
Весь код, который будет написан после этой строки, будет выполнен после завершения приложения.
Этот код можно скачать здесь.