Qt - широко известный кросс-платформенный фреймворк для разработки программного обеспечения, который может быть использован на различных софтварных и хардварных платформах без какого-либо изменения в коде. Данный фреймворк при этом обладает мощью и скоростью нативных приложений. Qt и был изначально написан на C++.
Данный текст является адаптацией введения в Qt на C++ под авторством Алексея Ковальчука для pyqt.
1def window():
2 # Создайте объект приложения
3 app = QtGui.QApplication(sys.argv)
4 # Создайте виджет, где будет находиться наш лейбл
5 w = QtGui.QWidget()
6 # Добавьте лейбл в виджет
7 b = QtGui.QLabel(w)
8 # Задайте текст для лейбла
9 b.setText("Hello World!")
10 # Задайте информация о размере и расположении
11 w.setGeometry(100, 100, 200, 50)
12 b.move(50, 20)
13 # Задайте заголовок окна
14 w.setWindowTitle("PyQt")
15 # Все ранее написанное выводится на экран
16 w.show()
17 # Настройка
18 sys.exit(app.exec_())
19
20if __name__ == '__main__':
21 window()
Для того чтобы получить более продвинутые функции приложения в pyqt, нам необходимо обратить внимание на создание дополнительных элементов. Ниже представлено создание всплывающего диалогового окна, которое просит пользователя подтвердить его решение или предоставить какую-либо информацию.
1import sys
2from PyQt4.QtGui import *
3from PyQt4.QtCore import *
4
5
6def window():
7 app = QApplication(sys.argv)
8 w = QWidget()
9 # Создайте кнопку и прикрепите ее к виджету w
10 b = QPushButton(w)
11 b.setText("Press me")
12 b.move(50, 50)
13 # Укажите b вызвать эту функцию при клике мышкой
14 # Заметьте, что в вызове функции отсутствуют "()"
15 b.clicked.connect(showdialog)
16 w.setWindowTitle("PyQt Dialog")
17 w.show()
18 sys.exit(app.exec_())
19
20Данная функция должна создавать диалоговое окно с кнопкой, которая ждет клика по себе
21и затем завершает программу.
22
23def showdialog():
24 d = QDialog()
25 b1 = QPushButton("ok", d)
26 b1.move(50, 50)
27 d.setWindowTitle("Dialog")
28 # Эта модальность сообщает всплывающему окну блокировать родительский элемент, пока он активен
29 d.setWindowModality(Qt.ApplicationModal)
30 # Процесс завершается по клику мышкой
31 b1.clicked.connect(sys.exit)
32 d.exec_()
33
34if __name__ == '__main__':
35 window()