Класс 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 * | нажатаяКнопка() const |
| QPushButton * | кнопкаПоУмолчанию() const |
| QString | подробныйТекст() const |
| QAbstractButton * | кнопкаEsc() const |
| QMessageBox::Icon | иконка() const |
| QPixmap | иконкаPixmap() const |
| QString | информативныйТекст() const |
| void | open(QObject *receiver, const char *member) |
| void | удалитьКнопку(QAbstractButton *button) |
| void | установитьCheckBox(QCheckBox *cb) |
| void | установитьКнопкуПоУмолчанию(QPushButton *button) |
| void | установитьКнопкуПоУмолчанию(QMessageBox::StandardButton button) |
| void | установитьПодробныйТекст(const QString &text) |
| void | установитьКнопкуEsc(QAbstractButton *button) |
| void | установитьКнопкуEsc(QMessageBox::StandardButton button) |
| void | установитьИконку(QMessageBox::Icon) |
| void | установитьИконкуPixmap(const QPixmap &pixmap) |
| void | установитьИнформативныйТекст(const QString &text) |
| void | установитьСтандартныеКнопки(QMessageBox::StandardButtons buttons) |
| void | установитьТекст(const QString &text) |
| void | установитьФорматТекста(Qt::TextFormat format) |
| void | установитьФлагиВзаимодействияСТекстом(Qt::TextInteractionFlags flags) |
| void | установитьМодальностьОкна(Qt::WindowModality windowModality) |
| void | установитьЗаголовокОкна(const QString &title) |
| QMessageBox::StandardButton | стандартнаяКнопка(QAbstractButton *button) const |
| QMessageBox::StandardButtons | стандартныеКнопки() const |
| QString | текст() const |
| Qt::TextFormat | форматТекста() const |
| Qt::TextInteractionFlags | флагиВзаимодействияСТекстом() const |
- 8 открытых функций унаследовано от QDialog
- 214 открытых функций унаследовано от QWidget
- 34 открытых функций унаследовано от 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) |
| 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
Дополнительные унаследованные члены
- 1 public variable inherited from QObject
- 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
- 2 protected variables inherited from QObject
- 1 protected type inherited from QPaintDevice
Подробное описание
Класс QMessageBox предоставляет модальное диалоговое окно для информирования пользователя или для задавания ему вопроса и получения ответа.
Окно сообщения отображает основной текст для информирования пользователя о ситуации, дополнительный текст для более подробного объяснения или для задавания пользователю вопроса, и необязательный подробный текст для предоставления еще больше данных по запросу пользователя. Окно сообщения также может отображать значок и стандартные кнопки для приема ответа пользователя.
Предоставляются два API для использования QMessageBox, основанный на свойствах и статические функции. Вызов одной из статических функций является более простым подходом, но он менее гибкий, чем использование 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;
} Чтобы предоставить пользователю больше информации для ответа на вопрос, установите свойство подробный текст. Если свойство подробный текст установлено, кнопка Показать детали... будет отображена.
Нажатие на кнопку Показать детали... отобразит подробный текст.
Форматирование Rich Text и свойство формата текста
Свойство подробный текст всегда интерпретируется как обычный текст. Свойства основной текст и дополнительный текст могут быть либо обычным текстом, либо форматированным текстом. Эти строки интерпретируются в соответствии с настройкой свойства формат текста. Значение по умолчанию — автоматический.
Обратите внимание, что для некоторых строк простого текста, содержащих метасимволы XML, тест распознавания форматированного текста может завершиться неудачей, что приведёт к неверному интерпретированию вашей строки простого текста как форматированного текста. В этих редких случаях используйте Qt::convertFromPlainText() для преобразования вашей строки простого текста в визуально эквивалентную строку форматированного текста или явно задайте свойство формат текста с помощью setTextFormat().
Уровни серьезности и свойства значка и пиктограммы
QMessageBox поддерживает четыре предопределённых уровня серьезности сообщений или типа сообщения, которые фактически различаются только предопределённым отображаемым значком. Укажите один из четырёх предопределённых типов сообщений, задав свойство значок на одно из предопределённых значков. Следующие правила являются рекомендациями:
| Вопрос | Для задавания вопроса во время обычных операций. | |
| Информация | Для отображения информации об обычных операциях. | |
| Предупреждение | Для отображения некритичных ошибок. | |
| Критическая ошибка | Для отображения критических ошибок. |
Предопределённые значки не определяются QMessageBox, а предоставляются стилем. Значение по умолчанию — Без значка. Окна сообщений в остальных случаях одинаковы. При использовании стандартного значка используйте рекомендованный в таблице или рекомендованный руководством по стилю для вашей платформы. Если ни один из стандартных значков не подходит для вашего окна сообщений, вы можете использовать пользовательский значок, задав свойство пиктограмму значка вместо задания свойства значок.
В итоге, для задания значка используйте либо setIcon() для одного из стандартных значков, либо setIconPixmap() для пользовательского значка.
API статических функций
Создание окон сообщений с помощью API статических функций, хотя и удобно, менее гибко, чем использование API на основе свойств, поскольку сигнатуры статических функций не содержат параметров для задания свойств информативного текста и подробного текста. Одним из решений было использование параметра title в качестве основного текста окна сообщений и параметра text в качестве информативного текста окна сообщений. Поскольку это очевидно ухудшает читаемость окна сообщений, руководства по платформам не рекомендуют это. Руководство по интерфейсу пользователя Microsoft Windows рекомендует использовать имя приложения имя приложения в качестве заголовка окна, а это значит, что если у вас есть информативный текст помимо основного, вы должны его конкатенировать к параметру text.
Обратите внимание, что сигнатуры статических функций изменились в отношении параметров кнопок, которые теперь используются для задания стандартных кнопок и кнопки по умолчанию.
Доступны статические функции для создания окон сообщений информации(), вопроса(), предупреждения() и критической ошибки().
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.
Растровое изображение, используемое для отображения фактического значка, зависит от текущего стиля GUI. Вы также можете установить пользовательское растровое изображение для значка, задав свойство растрового изображения значка.
Функции доступа:
| QMessageBox::Icon | icon() const |
| void | setIcon(QMessageBox::Icon) |
См. также iconPixmap.
iconPixmap : QPixmap
Это свойство содержит текущий значок.
Значок, в настоящее время используемый диалоговым окном сообщения. Обратите внимание, что часто сложно создать одно растровое изображение, которое будет выглядеть подходящим во всех стилях GUI; вам может потребоваться предоставить разное растровое изображение для каждой платформы.
По умолчанию это свойство не определено.
Функции доступа:
| QPixmap | iconPixmap() const |
| void | setIconPixmap(const QPixmap &pixmap) |
См. также значок.
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 с заданным title и центрированным по отношению к parent (если parent не 0). Сообщение включает номер версии Qt, используемой приложением.
Это полезно для включения в меню Справка приложения, как показано в примере Меню.
QApplication предоставляет эту функциональность в качестве слота.
В macOS диалоговое окно «О Qt» открывается как безадресное окно; на других платформах оно в настоящее время является модальным для приложения.
См. также QApplication::aboutQt().
void QMessageBox::addButton(QAbstractButton *button, QMessageBox::ButtonRole role)
Добавляет указанную кнопку в диалоговое окно с сообщением с заданной ролью.
Эта функция была добавлена в Qt 4.2.
См. также removeButton(), button() и setStandardButtons().
QPushButton *QMessageBox::addButton(const QString &text, QMessageBox::ButtonRole 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, и кнопка выхода не была установлена.
Если exec() ещё не вызвана, возвращает 0.
Пример:
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, возвращается кнопка выхода.
Диалоговое окно является модальным для приложения.
Предупреждение: Не удаляйте parent во время выполнения диалогового окна. Если вы хотите сделать это, вы должны создать диалоговое окно самостоятельно, используя один из конструкторов QMessageBox.
Эта функция была добавлена в Qt 4.2.
См. также question(), warning() и information().
QPushButton *QMessageBox::defaultButton() const
Возвращает кнопку, которая должна быть кнопкой по умолчанию в диалоговом окне. Возвращает 0, если кнопка по умолчанию не была задана.
Эта функция была добавлена в Qt 4.2.
См. также setDefaultButton(), addButton() и QPushButton::setDefault().
QAbstractButton *QMessageBox::escapeButton() const
Возвращает кнопку, активируемую при нажатии клавиши Esc.
По умолчанию QMessageBox пытается автоматически определить кнопку выхода следующим образом:
- Если кнопка одна, она становится кнопкой Esc.
- Если есть кнопка Отмена, она становится кнопкой Esc.
- Только на macOS, если есть ровно одна кнопка с ролью QMessageBox::RejectRole, она становится кнопкой Esc.
Когда кнопку Esc невозможно автоматически определить, нажатие клавиши 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, возвращается кнопка 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, возвращается кнопка 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/archives/qt-5.11/qmessagebox.html