Класс QMessageBox
Класс QMessageBox предоставляет модальное диалоговое окно для информирования пользователя или для задавания ему вопроса и получения ответа. Подробнее...
| Заголовок: | #include <QMessageBox> |
| qmake: | QT += widgets |
| Наследует: | QDialog |
Открытые типы
| перечисление | ButtonRole { InvalidRole, AcceptRole, RejectRole, DestructiveRole, ..., NRoles } |
| перечисление | Icon { NoIcon, Question, Information, Warning, Critical } |
| перечисление | StandardButton { Ok, Open, Save, Cancel, ..., ButtonMask } |
| флаги | StandardButtons |
Свойства
|
|
- 2 свойства унаследованы от QDialog
- 59 свойств унаследовано от QWidget
- 1 свойство унаследовано от QObject
Публичные функции
| QMessageBox(QWidget *parent = nullptr) | |
| QMessageBox(QMessageBox::Icon icon, const QString &title, const QString &text, QMessageBox::StandardButtons buttons, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint) | |
| virtual | ~QMessageBox() |
| void | addButton(QAbstractButton *button, QMessageBox::ButtonRole role) |
| QPushButton * | addButton(const QString &text, QMessageBox::ButtonRole role) |
| QPushButton * | addButton(QMessageBox::StandardButton button) |
| QAbstractButton * | button(QMessageBox::StandardButton which) const |
| QMessageBox::ButtonRole | buttonRole(QAbstractButton *button) const |
| QList<QAbstractButton *> | buttons() const |
| QCheckBox * | checkBox() const |
| QAbstractButton * | clickedButton() const |
| QPushButton * | defaultButton() const |
| QString | detailedText() const |
| QAbstractButton * | escapeButton() const |
| QMessageBox::Icon | иконка() const |
| QPixmap | iconPixmap() const |
| QString | информативноеТекст() const |
| void | open(QObject *receiver, const char *member) |
| void | removeButton(QAbstractButton *button) |
| void | setCheckBox(QCheckBox *cb) |
| void | setDefaultButton(QPushButton *button) |
| void | setDefaultButton(QMessageBox::StandardButton button) |
| void | setDetailedText(const QString &text) |
| void | setEscapeButton(QAbstractButton *button) |
| void | setEscapeButton(QMessageBox::StandardButton button) |
| void | setIcon(QMessageBox::Icon) |
| void | setIconPixmap(const QPixmap &pixmap) |
| void | setInformativeText(const QString &text) |
| void | setStandardButtons(QMessageBox::StandardButtons buttons) |
| void | setText(const QString &text) |
| void | setTextFormat(Qt::TextFormat format) |
| void | setTextInteractionFlags(Qt::TextInteractionFlags flags) |
| void | setWindowModality(Qt::WindowModality windowModality) |
| void | setWindowTitle(const QString &title) |
| QMessageBox::StandardButton | standardButton(QAbstractButton *button) const |
| QMessageBox::StandardButtons | стандартныеКнопки() const |
| QString | текст() const |
| Qt::TextFormat | форматТекста() const |
| Qt::TextInteractionFlags | textInteractionFlags() const |
- 8 публичных функций унаследовано от QDialog
- 214 публичных функций унаследовано от QWidget
- 31 публичных функций унаследовано от QObject
- 14 публичных функций унаследовано от QPaintDevice
Публичные слоты
| virtual int | exec() |
- 5 public slots inherited from QDialog
- 19 public slots inherited from QWidget
- 1 public slot inherited from QObject
Сигналы
| void | buttonClicked(QAbstractButton *button) |
Статические публичные члены
| void | about(QWidget *parent, const QString &title, const QString &text) |
| void | aboutQt(QWidget *parent, const QString &title = QString()) |
| QMessageBox::StandardButton | critical(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton = NoButton) |
| int | critical(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButton button0, QMessageBox::StandardButton button1) |
| QMessageBox::StandardButton | information(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton = NoButton) |
| QMessageBox::StandardButton | information(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButton button0, QMessageBox::StandardButton button1 = NoButton) |
| QMessageBox::StandardButton | question(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = ..., QMessageBox::StandardButton defaultButton = NoButton) |
| int | question(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButton button0, QMessageBox::StandardButton button1) |
| const QMetaObject | staticMetaObject |
| QMessageBox::StandardButton | warning(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton = NoButton) |
| int | warning(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButton button0, QMessageBox::StandardButton button1) |
Переопределённые защищённые функции
| virtual void | changeEvent(QEvent *ev) override |
| virtual void | closeEvent(QCloseEvent *e) override |
| virtual bool | event(QEvent *e) override |
| virtual void | keyPressEvent(QKeyEvent *e) override |
| virtual void | resizeEvent(QResizeEvent *event) override |
| virtual void | showEvent(QShowEvent *e) override |
- 6 protected functions inherited from QDialog
- 35 protected functions inherited from QWidget
- 9 protected functions inherited from QObject
- 1 protected function inherited from QPaintDevice
Дополнительные унаследованные члены
- 6 protected functions inherited from QDialog
- 35 protected functions inherited from QWidget
- 9 protected functions inherited from QObject
- 1 protected function inherited from QPaintDevice
- 1 protected slot inherited from QWidget
Подробное описание
Класс QMessageBox предоставляет модальное диалоговое окно для информирования пользователя или для задавания ему вопроса и получения ответа.
Окно сообщения отображает основной текст, чтобы предупредить пользователя о ситуации, информативный текст, чтобы дополнительно объяснить предупреждение или задать пользователю вопрос, и необязательный подробный текст, чтобы предоставить ещё больше данных, если пользователь запросит их. Окно сообщения также может отображать значок и стандартные кнопки для принятия пользователем ответа.
Предоставляются два API для использования QMessageBox, API на основе свойств и статические функции. Вызов одной из статических функций — более простой подход, но он менее гибкий, чем использование API на основе свойств, и результат менее информативен. Рекомендуется использовать API на основе свойств.
API на основе свойств
Для использования API на основе свойств создайте экземпляр QMessageBox, установите необходимые свойства и вызовите exec() для отображения сообщения. Самый простой вариант — установить только свойство текста сообщения.
QMessageBox msgBox;
msgBox.setText("The document has been modified.");
msgBox.exec(); Пользователь должен нажать кнопку ОК, чтобы закрыть окно сообщения. Остальная часть графического интерфейса заблокирована до тех пор, пока окно сообщения не будет закрыто.
Лучше не просто предупреждать пользователя об событии, а также спросить его, что делать по этому поводу. Сохраните вопрос в свойстве информативный текст, и установите свойство стандартные кнопки в набор кнопок, которые вы хотите как набор ответов пользователя. Кнопки задаются путём комбинирования значений из StandardButtons с помощью побитового оператора ИЛИ. Порядок отображения кнопок зависит от платформы. Например, в Windows кнопка Сохранить отображается слева от кнопки Отмена, в то время как в Mac OS порядок обратный.
Отметьте одну из стандартных кнопок как кнопку по умолчанию.
QMessageBox msgBox;
msgBox.setText("The document has been modified.");
msgBox.setInformativeText("Do you want to save your changes?");
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Save);
int ret = msgBox.exec(); Это подход, рекомендуемый в руководстве macOS. Аналогичные рекомендации применяются и для других платформ, но обратите внимание на разные способы обработки информативного текста для разных платформ.
Слот exec() возвращает значение StandardButtons нажатой кнопки.
switch (ret) {
case QMessageBox::Save:
// Save was clicked
break;
case QMessageBox::Discard:
// Don't Save was clicked
break;
case QMessageBox::Cancel:
// Cancel was clicked
break;
default:
// should never be reached
break;
} Чтобы предоставить пользователю больше информации, которая поможет ему ответить на вопрос, установите свойство подробный текст. Если установлено свойство подробный текст, будет отображаться кнопка Показать подробности....
Нажав кнопку Показать подробности..., отобразится подробный текст.
Текст форматирования и свойство формата текста
Свойство подробный текст всегда интерпретируется как обычный текст. Свойства основного текста и информативного текста могут быть либо обычным, либо форматированным текстом. Эти строки интерпретируются в соответствии с настройкой свойства формат текста. Значение по умолчанию — авто-текст.
Обратите внимание, что для некоторых строк обычного текста, содержащих метасимволы XML, тест обнаружения форматированного текста «авто-текст» может завершиться неудачей, что приведёт к неправильной интерпретации строки обычного текста как форматированного текста. В этих редких случаях используйте Qt::convertFromPlainText(), чтобы преобразовать строку обычного текста в визуально эквивалентную строку форматированного текста, или установите свойство формат текста явно с помощью setTextFormat().
END_OF_DOCUMENT_MARKERУровни серьезности и свойства иконки и пиксельной карты
QMessageBox поддерживает четыре предопределенных уровня серьезности сообщений или типа сообщений, которые фактически отличаются только предопределённой иконкой, которую они отображают. Укажите один из четырёх предопределенных типов сообщений, установив свойство icon на одно из предопределённых значений иконки. Следующие правила являются рекомендациями:
| Вопрос | Для задавания вопроса во время обычной работы. | |
| Информация | Для отображения информации об обычной работе. | |
| Предупреждение | Для сообщения об ошибках, не являющихся критическими. | |
| Критическая ошибка | Для сообщения о критических ошибках. |
Предопределённые иконки не определяются QMessageBox, а предоставляются стилем. Значение по умолчанию — Нет иконки. Окна сообщений в остальных случаях одинаковы. При использовании стандартной иконки используйте рекомендуемую в таблице или ту, что рекомендована руководством по стилю для вашей платформы. Если ни одна из стандартных иконок не подходит для вашего окна сообщения, вы можете использовать пользовательскую иконку, установив свойство иконку пиксельной карты вместо свойства icon.
В общем, для установки иконки, используйте либо setIcon() для одной из стандартных иконок, либо setIconPixmap() для пользовательской иконки.
API статических функций
Создание окон сообщений с помощью API статических функций, хотя и удобно, менее гибко, чем использование API на основе свойств, так как сигнатуры статических функций не имеют параметров для установки свойств информативного текста и подробного текста. Одним из решений этой проблемы было использование параметра title в качестве основного текста окна сообщения и параметра text в качестве информативного текста окна сообщения. Поскольку это очевидно ухудшает читаемость окна сообщения, руководства по платформам не рекомендуют этого. Руководства по пользовательскому интерфейсу Microsoft Windows рекомендуют использовать имя приложения applicationName в качестве заголовка окна, что означает, что если у вас есть информативный текст в дополнение к основному тексту, вы должны объединить его с параметром text.
Обратите внимание, что сигнатуры статических функций были изменены по отношению к параметрам кнопок, которые теперь используются для установки стандартных кнопок и кнопки по умолчанию.
Доступны статические функции для создания окон сообщений information(), question(), warning() и critical().
int ret = QMessageBox::warning(this, tr("My Application"),
tr("The document has been modified.\n"
"Do you want to save your changes?"),
QMessageBox::Save | QMessageBox::Discard
| QMessageBox::Cancel,
QMessageBox::Save); Пример Стандартные диалоги демонстрирует, как использовать QMessageBox и другие встроенные диалоги Qt.
Расширенное использование
Если стандартные кнопки недостаточно гибкие для вашего окна сообщения, вы можете использовать перегрузку addButton(), которая принимает текст и ButtonRole, чтобы добавить пользовательские кнопки. ButtonRole используется QMessageBox для определения порядка кнопок на экране (который меняется в зависимости от платформы). Вы можете проверить значение clickedButton() после вызова exec(). Например,
QMessageBox msgBox;
QPushButton *connectButton = msgBox.addButton(tr("Connect"), QMessageBox::ActionRole);
QPushButton *abortButton = msgBox.addButton(QMessageBox::Abort);
msgBox.exec();
if (msgBox.clickedButton() == connectButton) {
// connect
} else if (msgBox.clickedButton() == abortButton) {
// abort
} Клавиши по умолчанию и Esc
Кнопку по умолчанию (т. е. кнопку, активируемую при нажатии Enter) можно указать с помощью setDefaultButton(). Если кнопка по умолчанию не указана, QMessageBox пытается найти её на основе ролей кнопок, используемых в окне сообщения.
Кнопку Esc (кнопку, активируемую при нажатии Esc) можно указать с помощью setEscapeButton(). Если кнопка Esc не указана, QMessageBox пытается найти её по этим правилам:
- Если есть только одна кнопка, она активируется при нажатии Esc.
- Если есть кнопка Отмена, она активируется при нажатии Esc.
- Если ровно одна кнопка имеет роль Отклонить или роль Нет, она активируется при нажатии Esc.
Когда кнопка Esc не может быть определена по этим правилам, нажатие Esc не имеет эффекта.
См. также QDialogButtonBox, Справочник по проектированию пользовательского интерфейса: Окно сообщения, Пример Стандартных диалогов и Пример приложения.
Документация по типам членов
перечисление QMessageBox::Icon
Это перечисление имеет следующие значения:
| Константа | Значение | Описание |
|---|---|---|
QMessageBox::NoIcon |
0 |
окно сообщения не имеет иконки. |
QMessageBox::Question |
4 |
иконка, указывающая, что сообщение задаёт вопрос. |
QMessageBox::Information |
1 |
иконка, указывающая, что сообщение ничего необычного не содержит. |
QMessageBox::Warning |
2 |
иконка, указывающая, что сообщение — предупреждение, но с ним можно справиться. |
QMessageBox::Critical |
3 |
иконка, указывающая, что сообщение представляет собой критическую проблему. |
перечисление QMessageBox::StandardButtonфлаги QMessageBox::StandardButtons
Эти перечисления описывают флаги для стандартных кнопок. Каждая кнопка имеет определённую ButtonRole.
| Константа | Значение | Описание |
|---|---|---|
QMessageBox::Ok |
0x00000400 |
Кнопка "ОК", определённая с помощью AcceptRole. |
QMessageBox::Open |
0x00002000 |
Кнопка "Открыть", определённая с помощью AcceptRole. |
QMessageBox::Save |
0x00000800 |
Кнопка "Сохранить", определённая с помощью AcceptRole. |
QMessageBox::Cancel |
0x00400000 |
Кнопка "Отмена", определённая с помощью RejectRole. |
QMessageBox::Close |
0x00200000 |
Кнопка "Закрыть", определённая с помощью RejectRole. |
QMessageBox::Discard |
0x00800000 |
Кнопка "Отбросить" или "Не сохранять" (в зависимости от платформы), определённая с помощью DestructiveRole. |
QMessageBox::Apply |
0x02000000 |
Кнопка "Применить", определённая с помощью ApplyRole. |
QMessageBox::Reset |
0x04000000 |
Кнопка "Сбросить", определённая с помощью ResetRole. |
QMessageBox::RestoreDefaults |
0x08000000 |
Кнопка "Восстановить значения по умолчанию", определённая с помощью ResetRole. |
QMessageBox::Help |
0x01000000 |
Кнопка "Справка", определённая с помощью HelpRole. |
QMessageBox::SaveAll |
0x00001000 |
Кнопка "Сохранить все", определённая с помощью AcceptRole. |
QMessageBox::Yes |
0x00004000 |
Кнопка "Да", определённая с помощью YesRole. |
QMessageBox::YesToAll |
0x00008000 |
Кнопка "Да для всех", определённая с помощью YesRole. |
QMessageBox::No |
0x00010000 |
Кнопка "Нет", определённая с помощью NoRole. |
QMessageBox::NoToAll |
0x00020000 |
Кнопка "Нет для всех", определённая с помощью NoRole. |
QMessageBox::Abort |
0x00040000 |
Кнопка "Прервать", определённая с помощью RejectRole. |
QMessageBox::Retry |
0x00080000 |
Кнопка "Повторить", определённая с помощью AcceptRole. |
QMessageBox::Ignore |
0x00100000 |
Кнопка "Пропустить", определённая с помощью AcceptRole. |
QMessageBox::NoButton |
0x00000000 |
Недействительная кнопка. |
Следующие значения устарели:
| Константа | Значение | Описание |
|---|---|---|
QMessageBox::YesAll |
YesToAll |
Используйте YesToAll вместо этого. |
QMessageBox::NoAll |
NoToAll |
Используйте NoToAll вместо этого. |
QMessageBox::Default |
0x00000100 |
Используйте вместо этого аргумент defaultButton функций information(), warning() и т.д., или вызовите setDefaultButton(). |
QMessageBox::Escape |
0x00000200 |
Вызовите setEscapeButton() вместо этого. |
QMessageBox::FlagMask |
0x00000300 |
|
QMessageBox::ButtonMask |
~FlagMask |
Этот перечисление был введён или изменён в Qt 4.2.
Тип StandardButtons является псевдонимом для QFlags<StandardButton>. Он хранит комбинацию значений StandardButton, полученную по оператору OR.
См. также ButtonRole и standardButtons.
Документация свойств
detailedText : QString
Это свойство содержит текст, который будет отображаться в области подробностей.
Текст будет интерпретирован как обычный текст.
По умолчанию это свойство содержит пустую строку.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| QString | detailedText() const |
| void | setDetailedText(const QString &text) |
См. также QMessageBox::text и QMessageBox::informativeText.
icon : Icon
Это свойство содержит значок сообщения.
Значок диалогового окна сообщения можно задать одним из значений:
- QMessageBox::NoIcon
- QMessageBox::Question
- QMessageBox::Information
- QMessageBox::Warning
- QMessageBox::Critical
По умолчанию используется QMessageBox::NoIcon.
Изображение, используемое для отображения значка, зависит от текущего стиля интерфейса. Вы также можете задать пользовательское изображение для значка, установив свойство icon pixmap.
Функции доступа:
| QMessageBox::Icon | icon() const |
| void | setIcon(QMessageBox::Icon) |
См. также iconPixmap.
iconPixmap : QPixmap
Это свойство содержит текущий значок.
Текущий значок, используемый диалоговым окном сообщения. Обратите внимание, что часто сложно создать одно изображение, которое выглядит подходящим во всех стилях интерфейса; вы можете захотеть предоставить разные изображения для каждой платформы.
По умолчанию это свойство не определено.
Функции доступа:
| QPixmap | iconPixmap() const |
| void | setIconPixmap(const QPixmap &pixmap) |
См. также icon.
informativeText : QString
Это свойство содержит дополнительный текст, который предоставляет более подробное описание сообщения.
Дополнительный текст можно использовать для расширения text() и предоставления пользователю более подробной информации. На macOS этот текст отображается мелким системным шрифтом под text(). На других платформах он просто добавляется к существующему тексту.
По умолчанию это свойство содержит пустую строку.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| QString | informativeText() const |
| void | setInformativeText(const QString &text) |
См. также QMessageBox::text и QMessageBox::detailedText.
standardButtons : StandardButtons
Коллекция стандартных кнопок в диалоговом окне сообщения.
Это свойство управляет тем, какие стандартные кнопки используются в диалоговом окне сообщения.
По умолчанию это свойство не содержит стандартных кнопок.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| QMessageBox::StandardButtons | standardButtons() const |
| void | setStandardButtons(QMessageBox::StandardButtons buttons) |
См. также addButton().
text : QString
Это свойство содержит текст диалогового окна сообщения, который будет отображаться.
Текст будет интерпретирован как обычный или форматированный текст в зависимости от настройки формата текста (QMessageBox::textFormat). По умолчанию используется Qt::AutoText, т.е. диалоговое окно сообщения попытается определить формат текста автоматически.
Значение по умолчанию для этого свойства — пустая строка.
Функции доступа:
| QString | text() const |
| void | setText(const QString &text) |
См. также textFormat, QMessageBox::informativeText и QMessageBox::detailedText.
textFormat : Qt::TextFormat
Это свойство содержит формат текста, отображаемого в диалоговом окне сообщения.
Текущий формат текста, используемый диалоговым окном сообщения. Смотрите перечисление Qt::TextFormat для описания возможных вариантов.
По умолчанию используется формат Qt::AutoText.
Функции доступа:
| Qt::TextFormat | textFormat() const |
| void | setTextFormat(Qt::TextFormat format) |
См. также setText().
textInteractionFlags : Qt::TextInteractionFlags
Указывает, как метка диалогового окна сообщения должна взаимодействовать с пользовательским вводом.
Значение по умолчанию зависит от стиля.
Это свойство было добавлено в Qt 5.1.
Функции доступа:
| Qt::TextInteractionFlags | textInteractionFlags() const |
| void | setTextInteractionFlags(Qt::TextInteractionFlags flags) |
См. также QStyle::SH_MessageBox_TextInteractionFlags.
Документация функций-членов
Это перечисление описывает роли, которые могут быть использованы для описания кнопок в группе кнопок. Комбинации этих ролей представлены как флаги, используемые для описания различных аспектов их поведения.
| Константа | Описание |
|---|---|
InvalidRole |
Кнопка недопустима. |
AcceptRole |
Нажатие на кнопку приводит к подтверждению диалога (например, ОК). |
RejectRole |
Нажатие на кнопку приводит к отклонению диалога (например, Отмена). |
DestructiveRole |
Нажатие на кнопку вызывает разрушающее изменение (например, для отбрасывания изменений) и закрывает диалог. |
ActionRole |
Нажатие на кнопку вызывает изменения элементов в диалоге. |
HelpRole |
Кнопка может быть нажата для запроса справки. |
YesRole |
Кнопка похожа на кнопку «Да». |
NoRole |
Кнопка похожа на кнопку «Нет». |
ApplyRole |
Кнопка применяет текущие изменения. |
ResetRole |
Кнопка сбрасывает поля диалога до значений по умолчанию. |
См. также StandardButton.
QMessageBox::QMessageBox(QWidget *parent = nullptr)
Конструирует диалоговое окно сообщения без текста и кнопок. parent передается в конструктор QDialog.
На macOS, если вы хотите, чтобы ваше диалоговое окно сообщения отображалось как Qt::Sheet своего parent, установите модальность окна диалогового окна сообщения на Qt::WindowModal или используйте open(). В противном случае диалоговое окно сообщения будет стандартным.
QMessageBox::QMessageBox(QMessageBox::Icon icon, const QString &title, const QString &text, QMessageBox::StandardButtons buttons, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint)
Создаёт окно сообщения с заданным иконой, заголовком, текстом и стандартными кнопками. Стандартные или пользовательские кнопки могут быть добавлены в любое время с помощью addButton(). Аргументы parent и f передаются в конструктор QDialog.
Окно сообщения — это диалоговое окно модального типа приложения.
На macOS, если parent не равно 0 и вы хотите, чтобы ваше окно сообщения отображалось как Qt::Sheet этого родительского окна, установите модальный тип окна сообщения на Qt::WindowModal (по умолчанию). В противном случае окно сообщения будет стандартным диалоговым окном.
См. также setWindowTitle(), setText(), setIcon() и setStandardButtons().
[virtual] QMessageBox::~QMessageBox()
Удаляет окно сообщения.
[static] void QMessageBox::about(QWidget *parent, const QString &title, const QString &text)
Отображает простое окно «О программе» с заголовком title и текстом text. Родительским окном окна «О программе» является parent.
about() ищет подходящую иконку в четырёх местах:
- Предпочтение отдаётся parent->icon(), если она существует.
- В противном случае, пытается найти верхний уровень виджета, содержащего parent.
- Если это не удаётся, пытается найти активное окно.
- В качестве последней попытки используется иконка «Информация».
Окно «О программе» имеет единственную кнопку с надписью «ОК». На macOS окно «О программе» появляется как модальное окно; на других платформах оно в настоящее время является модальным окном приложения.
См. также QWidget::windowIcon() и QApplication::activeWindow().
[static] void QMessageBox::aboutQt(QWidget *parent, const QString &title = QString())
Отображает простое окно сообщения о Qt с заданным заголовком и центрированным по отношению к parent (если parent не равно 0). Сообщение включает номер версии Qt, используемой приложением.
Это полезно для включения в меню Справка приложения, как показано в примере Меню.
QApplication предоставляет эту функциональность как слот.
На macOS окно «О Qt» открывается как безальтернативное окно; на других платформах в настоящее время оно является модальным окном приложения.
См. также QApplication::aboutQt().
void QMessageBox::addButton(QAbstractButton *button, QMessageBox::ButtonRole role)
Добавляет заданную кнопку в окно сообщения со значением role.
Эта функция была добавлена в Qt 4.2.
См. также removeButton(), button() и setStandardButtons().
QPushButton *QMessageBox::addButton(const QString &text, QMessageBox::ButtonRole role)
Это перегруженная функция.
Создаёт кнопку с заданным текстом, добавляет её в окно сообщения для указанного role и возвращает её.
Эта функция была добавлена в Qt 4.2.
QPushButton *QMessageBox::addButton(QMessageBox::StandardButton button)
Это перегруженная функция.
Добавляет стандартную кнопку в окно сообщения, если это возможно, и возвращает кнопку.
Эта функция была добавлена в Qt 4.2.
См. также setStandardButtons().
QAbstractButton *QMessageBox::button(QMessageBox::StandardButton which) const
Возвращает указатель на стандартную кнопку which или 0, если стандартная кнопка не существует в этом окне сообщения.
Эта функция была добавлена в Qt 4.2.
См. также standardButtons и standardButton().
[signal] void QMessageBox::buttonClicked(QAbstractButton *button)
Этот сигнал испускается всякий раз, когда нажимается кнопка внутри QMessageBox. Кнопка, на которую был нажат, возвращается в button.
QMessageBox::ButtonRole QMessageBox::buttonRole(QAbstractButton *button) const
Возвращает роль кнопки для указанной кнопки. Эта функция возвращает InvalidRole, если button равно 0 или не был добавлен в окно сообщения.
Эта функция была добавлена в Qt 4.5.
См. также buttons() и addButton().
QList<QAbstractButton *> QMessageBox::buttons() const
Возвращает список всех кнопок, которые были добавлены в окно сообщения.
Эта функция была добавлена в Qt 4.5.
См. также buttonRole(), addButton() и removeButton().
[override virtual protected] void QMessageBox::changeEvent(QEvent *ev)
Переопределено из QWidget::changeEvent().
QCheckBox *QMessageBox::checkBox() const
Возвращает флажок, отображаемый в диалоговом окне. Это 0, если флажок не установлен.
Эта функция была добавлена в Qt 5.2.
См. также setCheckBox().
QAbstractButton *QMessageBox::clickedButton() const
Возвращает кнопку, на которую нажал пользователь, или 0, если пользователь нажал клавишу Esc и не была установлена кнопка escape button.
Если exec() ещё не вызывалась, возвращает nullptr.
Пример:
QMessageBox messageBox(this);
QAbstractButton *disconnectButton =
messageBox.addButton(tr("Disconnect"), QMessageBox::ActionRole);
...
messageBox.exec();
if (messageBox.clickedButton() == disconnectButton) {
...
} Эта функция была добавлена в Qt 4.2.
См. также standardButton() и button().
[override virtual protected] void QMessageBox::closeEvent(QCloseEvent *e)
Переопределено из QDialog::closeEvent().
[static] QMessageBox::StandardButton QMessageBox::critical(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton = NoButton)
Открывает окно критического сообщения с заданным заголовком и текстом перед указанным виджетом parent.
Стандартные кнопки добавляются в окно сообщения. defaultButton указывает кнопку, используемую при нажатии клавиши Enter. defaultButton должен ссылаться на кнопку, заданную в buttons. Если defaultButton равен QMessageBox::NoButton, QMessageBox автоматически выбирает подходящую кнопку по умолчанию.
Возвращает идентификатор стандартной кнопки, на которую был нажат. Если вместо этого была нажата клавиша Esc, возвращается кнопка escape button.
Окно сообщения — это диалоговое окно модального типа приложения.
Предупреждение: Не удаляйте parent во время выполнения диалога. Если вы хотите сделать это, вы должны создать диалог самостоятельно, используя один из конструкторов QMessageBox.
Эта функция была добавлена в Qt 4.2.
См. также question(), warning() и information().
QPushButton *QMessageBox::defaultButton() const
Возвращает кнопку, которая должна быть кнопкой по умолчанию окна сообщения. Возвращает nullptr, если кнопка по умолчанию не была установлена.
Эта функция была добавлена в Qt 4.2.
См. также setDefaultButton(), addButton() и QPushButton::setDefault().
QAbstractButton *QMessageBox::escapeButton() const
Возвращает кнопку, активируемую при нажатии клавиши Esc.
По умолчанию QMessageBox пытается автоматически определить кнопку Esc следующим образом:
- Если кнопка одна, она становится кнопкой выхода.
- Если есть кнопка Отмена, она становится кнопкой выхода.
- Только на macOS, если есть ровно одна кнопка с ролью QMessageBox::RejectRole, она становится кнопкой выхода.
Когда кнопку выхода нельзя автоматически определить, нажатие Esc не оказывает никакого эффекта.
Эта функция была введена в Qt 4.2.
См. также setEscapeButton() и addButton().
[override virtual protected] bool QMessageBox::event(QEvent *e)
Переопределено из QWidget::event().
[virtual slot] int QMessageBox::exec()
Переопределено из QDialog::exec().
Отображает диалоговое окно сообщения как модальное диалоговое окно, блокируя выполнение, пока пользователь не закроет его.
При использовании QMessageBox со стандартными кнопками эта функция возвращает значение StandardButton, указывающее на нажатую стандартную кнопку. При использовании QMessageBox с пользовательскими кнопками эта функция возвращает неопределённое значение; используйте clickedButton(), чтобы определить, какая кнопка была нажата.
Примечание: Функция result() также возвращает значение StandardButton вместо QDialog::DialogCode.
Пользователи не могут взаимодействовать с другими окнами в том же приложении, пока не закроют диалоговое окно, нажав кнопку или используя механизм, предоставляемый операционной системой.
[static] QMessageBox::StandardButton QMessageBox::information(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton = NoButton)
Открывает окно сообщения об информации с заданным title и text перед указанным виджетом parent.
Стандартные buttons добавляются в окно сообщения. defaultButton указывает кнопку, используемую при нажатии Enter. defaultButton должен ссылаться на кнопку, заданную в buttons. Если defaultButton равен QMessageBox::NoButton, QMessageBox автоматически выбирает подходящую кнопку по умолчанию.
Возвращает идентификатор нажатой стандартной кнопки. Если вместо этого было нажато Esc, возвращается кнопка выхода.
Диалоговое окно — приложение-модальное.
Предупреждение: Не удаляйте parent во время выполнения диалогового окна. Если вы хотите это сделать, вы должны создать диалоговое окно самостоятельно, используя один из конструкторов QMessageBox.
Эта функция была введена в Qt 4.2.
См. также question(), warning() и critical().
[override virtual protected] void QMessageBox::keyPressEvent(QKeyEvent *e)
Переопределено из QDialog::keyPressEvent().
void QMessageBox::open(QObject *receiver, const char *member)
Открывает диалоговое окно и подключает его сигнал finished() или buttonClicked() к слоту, указанному receiver и member. Если слот в member имеет указатель для первого параметра, подключение происходит к buttonClicked(), в противном случае — к finished().
Сигнал будет отключен от слота при закрытии диалогового окна.
[static] QMessageBox::StandardButton QMessageBox::question(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = ..., QMessageBox::StandardButton defaultButton = NoButton)
Открывает окно сообщения с вопросом с заданным title и text перед указанным виджетом parent.
Стандартные buttons добавляются в окно сообщения. defaultButton указывает кнопку, используемую при нажатии Enter. defaultButton должен ссылаться на кнопку, заданную в buttons. Если defaultButton равен QMessageBox::NoButton, QMessageBox автоматически выбирает подходящую кнопку по умолчанию.
Возвращает идентификатор нажатой стандартной кнопки. Если вместо этого было нажато Esc, возвращается кнопка выхода.
Диалоговое окно — приложение-модальное.
Предупреждение: Не удаляйте parent во время выполнения диалогового окна. Если вы хотите это сделать, вы должны создать диалоговое окно самостоятельно, используя один из конструкторов QMessageBox.
Эта функция была введена в Qt 4.2.
См. также information(), warning() и critical().
void QMessageBox::removeButton(QAbstractButton *button)
Удаляет button из панели кнопок, не удаляя его.
Эта функция была введена в Qt 4.2.
См. также addButton() и setStandardButtons().
[override virtual protected] void QMessageBox::resizeEvent(QResizeEvent *event)
Переопределено из QDialog::resizeEvent().
void QMessageBox::setCheckBox(QCheckBox *cb)
Устанавливает флажок cb в диалоговом окне сообщения. Диалоговое окно принимает во владение флажок. Аргумент cb может быть 0, чтобы удалить существующий флажок из диалогового окна.
Эта функция была введена в Qt 5.2.
См. также checkBox().
void QMessageBox::setDefaultButton(QPushButton *button)
Устанавливает кнопку по умолчанию диалогового окна в button.
Эта функция была введена в Qt 4.2.
См. также defaultButton(), addButton() и QPushButton::setDefault().
void QMessageBox::setDefaultButton(QMessageBox::StandardButton button)
Устанавливает кнопку по умолчанию диалогового окна в button.
Эта функция была введена в Qt 4.3.
См. также addButton() и QPushButton::setDefault().
void QMessageBox::setEscapeButton(QAbstractButton *button)
Устанавливает кнопку, которая активируется при нажатии клавиши Escape, в button.
Эта функция была введена в Qt 4.2.
См. также escapeButton(), addButton() и clickedButton().
void QMessageBox::setEscapeButton(QMessageBox::StandardButton button)
Устанавливает кнопки, которые активируются при нажатии клавиши Escape, в button.
Эта функция была введена в Qt 4.3.
См. также addButton() и clickedButton().
void QMessageBox::setWindowModality(Qt::WindowModality windowModality)
Эта функция переопределяет QWidget::setWindowModality().
Устанавливает модальность окна сообщения в windowModality.
На macOS, если модальность установлена в Qt::WindowModal и у окна сообщения есть родитель, то окно сообщения будет Qt::Sheet, в противном случае — стандартным диалоговым окном.
Эта функция была введена в Qt 4.2.
void QMessageBox::setWindowTitle(const QString &title)
Эта функция переопределяет QWidget::setWindowTitle().
Устанавливает заголовок окна сообщения в title. На macOS заголовок окна игнорируется (как требуется руководством macOS).
Эта функция была введена в Qt 4.2.
END_OF_DOCUMENT_MARKER
[override virtual protected] void QMessageBox::showEvent(QShowEvent *e)
Реализовано повторно из QDialog::showEvent().
QMessageBox::StandardButton QMessageBox::standardButton(QAbstractButton *button) const
Возвращает значение перечисления стандартной кнопки, соответствующее заданной кнопке button, или NoButton, если заданная кнопка button не является стандартной кнопкой.
Эта функция была введена в Qt 4.2.
См. также button() и standardButtons().
[static] QMessageBox::StandardButton QMessageBox::warning(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton defaultButton = NoButton)
Открывает окно сообщения об ошибке с заданным title и text перед указанным виджетом parent.
К окну сообщения добавляются стандартные кнопки buttons. defaultButton задаёт кнопку, используемую при нажатии Enter. defaultButton должен ссылаться на кнопку, заданную в buttons. Если defaultButton равен QMessageBox::NoButton, QMessageBox автоматически выбирает подходящую по умолчанию.
Возвращает идентификатор стандартной кнопки, на которую был нажат. Если вместо этого была нажата Esc, возвращается кнопка отмены.
Окно сообщения — это диалоговое окно, модальное для приложения.
Предупреждение: Не удаляйте parent во время выполнения диалога. Если вы хотите это сделать, вы должны создать диалог самостоятельно, используя один из конструкторов QMessageBox.
Эта функция была введена в Qt 4.2.
См. также question(), information() и critical().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qmessagebox.html