pyqt.md

Личный сайт Go-разработчика из Казани

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()