На этом шаге мы рассмотрим перечислим основные методы и сигналы этого класса.
Класс QMessageBox наследует все методы базовых классов и поддерживает следующие дополнительные методы (полный их список приведен на странице https://doc.qt.io/qt-5/qmessagebox.html):
dialog.setStandardButtons(QtWidgets.QMessageBox.Ok | QtWidgets.QMessageBox.Cancel)
addButton(<Стандартная кнопка>) addButton(<Текст>, <Роль>) addButton(<QAbstractButton>, <Роль>)
Первый формат добавляет стандартную кнопку или кнопки - значение параметра должно быть одним из рассмотренных ранее атрибутов класса QMessageBox или их комбинацией через оператор |. Второй формат принимает в качестве первого параметра надпись для добавляемой кнопки, а в качестве второго - ее роль. Третий формат принимает добавляемую кнопку в виде экземпляра одного из классов-потомков класса QAbstractButton - как правило, класса QPushButton, представляющего обычную кнопку.
В качестве роли указывается один из следующих атрибутов класса QMessageBox:
Если роль недействительна, кнопка добавлена не будет.
Первый и второй форматы возвращают ссылку на сгенерированную и добавленную в окно кнопку, третий не возвращает ничего. Пример:
btnYes = QtWidgets.QPushButton("&Да") dialog.addButton(btnYes, QtWidgets.QMessageBox.AcceptRole) btnNo = dialog.addButton("&Нет", QtWidgets.QMessageBox.RejectRole) btnCancel = dialog.addButton(QtWidgets.QMessageBox.Cancel)
setDefaultButton(<Стандартная кнопка>) setDefaultButton(<QPushButton>)
setEscapeButton(<Стандартная кнопка>) setEscapeButton(<QAbstractButton>)
Класс QMessageBox поддерживает сигнал buttonClicked(<QAbstractButton>), генерируемый при нажатии кнопки в окне. Внутри обработчика через параметр доступна ссылка на нажатую кнопку.
На следующем шаге мы рассмотрим окно информационного сообщения.