Шаг 253.
Библиотека PyQt5.
Диалоговые окна. Класс QInputDialog. Окно для ввода строки

    На этом шаге мы рассмотрим особенности создания и использования такого окна.

    Класс 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. Окно для ввода строки

    На следующем шаге мы рассмотрим окно для ввода целого числа.




Предыдущий шаг Содержание Следующий шаг