На этом шаге мы приведем общие сведения о назначении этого класса, формат конструктора и простейший пример использования.
Класс QInputDialog представляет модальные диалоговые окна для ввода различных данных. Иерархия наследования для этого класса выглядит так:
(QObject, QPaintDevice) - QWidget - QDialog - QInputDialog
Формат конструктора класса QInputDialog:
<Объект> = QInputDialog([parent=None][, flags=0]
Если в параметре parent указана ссылка на родительское окно, диалоговое окно будет центрироваться относительно родительского окна, а не относительно экрана. Параметр flags задает тип окна (см. 25 шаг).
После создания экземпляра класса следует вызвать метод exec() (или ехес_(), оставленный для совместимости с предыдущими версиями PyQt), чтобы отобразить окно. Метод возвращает код возврата в виде значения следующих атрибутов класса QDialog: Accepted или Rejected.
Вот пример отображения диалогового окна и обработки статуса внутри обработчика нажатия кнопки:
# -*- coding: utf-8 -*- from PyQt5 import QtWidgets import sys def on_clicked(): dialog = QtWidgets.QInputDialog() result = dialog.exec_() if result == QtWidgets.QDialog.Accepted: print("Нажата кнопка OK") # Здесь получаем данные из диалогового окна else: print("Нажата кнопка Cancel") app = QtWidgets.QApplication(sys.argv) button = QtWidgets.QPushButton("Нажми меня") # Назначаем обработчиком функцию button.clicked.connect(on_clicked) button.show() sys.exit(app.exec_())
Результат работы приложения приведен на рисунке 1.
Рис.1. Результат работы приложения
На следующем шаге мы рассмотрим его основные методы и сигналы.