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

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

    Окно для ввода большого фрагмента обычного текста реализуется статическим методом getMultiLineText(). Формат метода:

  getMultiLineText(<Родитель>, <Текст заголовка>, 
    <Текст подсказки>[, text=""][, flags=0])
В параметре <Родитель> указывается ссылка на родительское окно или значение None. Если указана ссылка, диалоговое окно будет центрироваться относительно родительского окна, а не относительно экрана. Параметр text устанавливает значение поля по умолчанию, а в параметре flags можно указать тип окна. Метод getMultiLineText() возвращает кортеж из двух элементов: (<Значение>, <Статус>). Через первый элемент доступно введенное значение, а через второй - значение True, если была нажата кнопка ОК, или значение False, если были нажаты кнопка Cancel, клавиша Esc или кнопка Закрыть в заголовке окна.

    Пример:

# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets
import sys
def on_clicked():
    s, ok = QtWidgets.QInputDialog.getMultiLineText(None, "Это заголовок окна", 
             "Это текст подсказки",
             text="Текст\nТекст\nТекст")
    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. Окно для ввода большого фрагмента текста

    Со следующего шага мы начнем рассматривать класс QFileDialog.




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