На этом шаге мы рассмотрим метод для создания окна такого вида.
Для вывода окна с запросом подтверждения каких-либо действий предназначен статический метод 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. Окно запроса подтверждения
На следующем шаге мы рассмотрим создание окна с предупреждающим сообщением.