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