На этом шаге мы рассмотрим особенности создания и использования такого окна.
Окно для ввода целого числа реализуется с помощью статического метода getInt(). Формат метода:
getInt(<Родитель>, <Текст заголовка>, <Текст подсказки>[, value=0][, min=-2147483647][, max=2147483647][, step=1][, flags=0])
В параметре <Родитель> указывается ссылка на родительское окно или значение None. Если указана ссылка, диалоговое окно будет центрироваться относительно родительского окна, а не относительно экрана. Необязательный параметр value устанавливает значение поля по умолчанию. Параметр min задает минимальное значение, параметр max - максимальное значение, а параметр step - шаг приращения. Параметр flags позволяет указать тип окна. Методы возвращают кортеж из двух элементов: (<Значение>, <Статус>). Через первый элемент доступно введенное значение, а через второй - значение True, если была нажата кнопка ОК, или значение False, если были нажаты кнопка Cancel, клавиша Esc или кнопка Закрыть в заголовке окна. Пример:
# -*- coding: utf-8 -*- from PyQt5 import QtWidgets import sys def on_clicked(): n, ok = QtWidgets.QInputDialog.getInt(None, "Это заголовок окна", "Это текст подсказки", value=50, min=0, max=100, step=2) if ok: print("Введено значение:", n) app = QtWidgets.QApplication(sys.argv) button = QtWidgets.QPushButton("Нажми меня") # Назначаем обработчиком функцию button.clicked.connect(on_clicked) button.show() sys.exit(app.exec_())
Результат работы приложения приведен на рисунке 1
Рис.1. Окно для ввода целого числа
На следующем шаге мы рассмотрим окно для ввода вещественного числа.