Шаг 246.
Библиотека PyQt5.
Диалоговые окна. Класс QMessageBox. Окно подтверждения

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

    Для вывода окна с запросом подтверждения каких-либо действий предназначен статический метод question(). Формат метода:

  question(<Родитель>,  <Текст заголовка>, <Текст сообщения>[,
    buttons=Yes | No][, defaultButton=NoButton])

    В параметре <Родитель> указывается ссылка на родительское окно или значение None. Если указана ссылка, диалоговое окно будет центрироваться относительно родительского окна, а не относительно экрана. Необязательный параметр buttons позволяет указать выводимые стандартные кнопки (атрибуты, задающие стандартные кнопки, указываются через оператор |). По умолчанию отображаются кнопки Yes и No. Параметр defaultButton назначает кнопку по умолчанию. Метод question() возвращает числовое обозначение нажатой кнопки. Пример:

# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets

import sys
def on_clicked():
    QtWidgets.QMessageBox.question(None, "Текст заголовка", 
        "Вы действительно хотите выполнить действие?", 
        buttons=QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No | 
                   QtWidgets.QMessageBox.Cancel, 
        defaultButton=QtWidgets.QMessageBox.Cancel)


app = QtWidgets.QApplication(sys.argv)
button = QtWidgets.QPushButton("Вызвать окно")
button.resize(200, 40)
button.clicked.connect(on_clicked)
button.show()
sys.exit(app.exec_())
Архив с файлом можно взять здесь.

    Результат работы приложения приведен на рисунке 1.


Рис.1. Окно запроса подтверждения

    На следующем шаге мы рассмотрим создание окна с предупреждающим сообщением.




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