Класс QMessageBox
Класс QMessageBox предоставляет модальное диалоговое окно для информирования пользователя или для задавания ему вопроса и получения ответа. Подробнее...
| Заголовок: | #include <QMessageBox> |
| qmake: | QT += widgets |
| Наследуется от: | QDialog |
Типы публичного доступа
| Перечисление | ButtonRole { InvalidRole, AcceptRole, RejectRole, DestructiveRole, ActionRole, …, ResetRole } |
| Перечисление | Icon { NoIcon, Question, Information, Warning, Critical } |
| Перечисление | StandardButton { Ok, Open, Save, Cancel, Close, …, ButtonMask } |
| Флаги | StandardButtons |
Свойства
|
|
Публичные функции
| QMessageBox(QMessageBox::Icon icon, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = NoButton, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint) | |
| QMessageBox(QWidget *parent = nullptr) | |
| 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 * | кнопкаEsc() const |
| QMessageBox::Icon | иконка() const |
| QPixmap | иконкаPixmap() const |
| QString | информационныйТекст() const |
| void | открыть(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 |
Открытые слоты
| virtual int | exec() override |
Сигналы
| void | buttonClicked(QAbstractButton *button) |
Статические публичные члены
| void | о программе(QWidget *parent, const QString &title, const QString &text) |
| void | о Qt(QWidget *parent, const QString &title = QString()) |
| QMessageBox::StandardButton | критическое сообщение(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton) |
| QMessageBox::StandardButton | информационное сообщение(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton) |
| QMessageBox::StandardButton | вопрос(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = StandardButtons(Yes | No), QMessageBox::StandardButton defaultButton = NoButton) |
| QMessageBox::StandardButton | предупреждение(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton) |
Переопределённые защищённые функции
| 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 |
Подробное описание
Диалоговое окно сообщения отображает основное сообщение текст для уведомления пользователя о ситуации, информативное сообщение для более подробного объяснения уведомления или задаёт вопрос пользователю и необязательный подробный текст для предоставления ещё большего объёма данных по запросу пользователя. Диалоговое окно сообщения также может отображать иконку и стандартные кнопки для получения ответа от пользователя.
Для использования 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().
Уровни серьезности и свойства Иконки и Растрового изображения
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
} Кнопки по умолчанию и клавиша Escape
Кнопку по умолчанию (т.е., кнопку, активируемую при нажатии Enter) можно указать с помощью setDefaultButton(). Если кнопка по умолчанию не указана, QMessageBox пытается найти ее на основе ролей кнопок, используемых в диалоговом окне.
Кнопку Esc (кнопку, активируемую при нажатии Esc) можно указать с помощью setEscapeButton(). Если кнопка Esc не указана, QMessageBox пытается найти её, используя следующие правила:
- Если кнопка только одна, она активируется при нажатии Esc.
- Если есть кнопка Отмена, она активируется при нажатии Esc.
- Если есть ровно одна кнопка с ролью Отклонения или ролью Нет, она активируется при нажатии Esc.
Если кнопка Esc не может быть определена по этим правилам, нажатие Esc не оказывает никакого действия.
См. также QDialogButtonBox, Руководство по проектированию пользовательского интерфейса: Диалоговое окно сообщения, Пример стандартных диалоговых окон и Пример приложения.
Документация типов членов
enum QMessageBox::ButtonRole
Этот перечисление описывает роли, которые могут быть использованы для описания кнопок в группе кнопок. Комбинации этих ролей являются флагами, используемыми для описания различных аспектов их поведения.
| Постоянная | Значение | Описание |
|---|---|---|
QMessageBox::InvalidRole |
-1 |
Кнопка недействительна. |
QMessageBox::AcceptRole |
0 |
Нажатие кнопки приводит к принятию диалога (например, «ОК»). |
QMessageBox::RejectRole |
1 |
Нажатие кнопки приводит к отклонению диалога (например, «Отмена»). |
QMessageBox::DestructiveRole |
2 |
Нажатие кнопки приводит к выполнению разрушающего действия (например, при отмене изменений) и закрытию диалога. |
QMessageBox::ActionRole |
3 |
Нажатие кнопки приводит к изменениям элементов внутри диалога. |
QMessageBox::HelpRole |
4 |
Нажатие кнопки позволяет запросить помощь. |
QMessageBox::YesRole |
5 |
Кнопка похожа на кнопку «Да». |
QMessageBox::NoRole |
6 |
Кнопка похожа на кнопку «Нет». |
QMessageBox::ApplyRole |
8 |
Кнопка применяет текущие изменения. |
QMessageBox::ResetRole |
7 |
Кнопка сбрасывает поля диалога до значений по умолчанию. |
См. также StandardButton.
enum QMessageBox::Icon
Этот перечисление содержит следующие значения:
| Константа | Значение | Описание |
|---|---|---|
QMessageBox::NoIcon |
0 |
окно сообщения не имеет значка. |
QMessageBox::Question |
4 |
значок, указывающий, что сообщение задаёт вопрос. |
QMessageBox::Information |
1 |
значок, указывающий, что сообщение обычное. |
QMessageBox::Warning |
2 |
значок, указывающий, что сообщение предупреждение, но с которым можно справиться. |
QMessageBox::Critical |
3 |
значок, указывающий, что сообщение обозначает критическую проблему. |
enum QMessageBox::StandardButtonфлаги QMessageBox::StandardButtons
Эти перечисления описывают флаги для стандартных кнопок. Каждая кнопка имеет определённую роль кнопки.
| Константа | Значение | Описание |
|---|---|---|
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.
См. также 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) |
См. также иконку.
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.
Документация по членам-функциям
QMessageBox::QMessageBox(QMessageBox::Icon icon, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = NoButton, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint)
Создаёт диалоговое окно сообщения с заданным icon, title, text и стандартными buttons. Стандартные или пользовательские кнопки могут быть добавлены в любое время с помощью addButton(). Аргументы parent и f передаются конструктору QDialog.
Диалоговое окно сообщения является модальным диалоговым окном приложения.
В macOS, если parent не nullptr и вы хотите, чтобы ваше диалоговое окно сообщения отображалось как Qt::Sheet для данного родительского окна, установите модальность диалогового окна сообщения на Qt::WindowModal (по умолчанию). В противном случае диалоговое окно будет стандартным диалоговым окном.
См. также setWindowTitle(), setText(), setIcon(), и setStandardButtons().
QMessageBox::QMessageBox(QWidget *parent = nullptr)
Создаёт диалоговое окно сообщения без текста и кнопок. parent передаётся конструктору QDialog.
В macOS, если вы хотите, чтобы ваше диалоговое окно сообщения отображалось как Qt::Sheet для родительского окна, установите модальность окна сообщения на Qt::WindowModal или используйте open(). В противном случае диалоговое окно будет стандартным диалоговым окном.
[signal] void QMessageBox::buttonClicked(QAbstractButton *button)
Этот сигнал испускается всякий раз, когда в QMessageBox нажимается кнопка. Кнопка, на которую был нажат, возвращается в button.
[override virtual slot] int QMessageBox::exec()
Переопределяет: QDialog::exec().
Отображает диалоговое окно сообщения в качестве модального диалогового окна, блокируя выполнение до закрытия пользователем.
При использовании QMessageBox со стандартными кнопками эта функция возвращает значение StandardButton, указывающее на нажатую стандартную кнопку. При использовании QMessageBox с настраиваемыми кнопками эта функция возвращает непрозрачное значение; используйте clickedButton(), чтобы определить, какая кнопка была нажата.
Примечание: Функция result() также возвращает значение StandardButton вместо QDialog::DialogCode.
Пользователи не могут взаимодействовать с другими окнами в том же приложении, пока не закроют диалоговое окно, нажав кнопку или используя механизм, предоставляемый операционной системой.
[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, с заданным заголовком и центрированным над родительским окном (если родительский параметр не nullptr). Сообщение включает номер версии Qt, используемый приложением.
Это полезно для включения в меню Справка приложения, как показано в примере Меню.
QApplication предоставляет эту функциональность как слот.
В macOS окно о программе отображается как модальное окно; на других платформах оно в настоящее время является модальным для всего приложения.
См. также 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, или nullptr если стандартная кнопка не существует в этом окне сообщений.
Эта функция была добавлена в Qt 4.2.
См. также standardButtons и standardButton().
QMessageBox::ButtonRole QMessageBox::buttonRole(QAbstractButton *button) const
Возвращает роль кнопки для указанной кнопки button. Эта функция возвращает InvalidRole, если button равен nullptr или не была добавлена в диалоговое окно.
Эта функция была добавлена в 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(QEvent *event).
QCheckBox *QMessageBox::checkBox() const
Возвращает виджет флажка, отображаемый в диалоговом окне. Возвращает nullptr если флажок не установлен.
Эта функция была добавлена в Qt 5.2.
См. также setCheckBox().
QAbstractButton *QMessageBox::clickedButton() const
Возвращает кнопку, нажатую пользователем, или nullptr если пользователь нажал клавишу Esc и не была задана кнопка Esc.
Если метод 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(QCloseEvent *e).
[static] QMessageBox::StandardButton QMessageBox::critical(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, QMessageBox::StandardButton defaultButton = NoButton)
Открывает диалоговое окно с критическим сообщением с заданным title и text перед указанным виджетом parent.
Стандартные buttons добавляются в окно сообщения. defaultButton задаёт кнопку, используемую при нажатии Enter. defaultButton должен ссылаться на кнопку, указанную в buttons. Если defaultButton равен QMessageBox::NoButton, QMessageBox автоматически выбирает подходящую кнопку по умолчанию.
Возвращает идентификатор стандартной кнопки, на которую был нажат. Если вместо этого была нажата Esc, возвращается кнопка отмены.
Диалоговое окно является модальным для приложения.
Предупреждение: Не удаляйте parent во время выполнения диалога. Если вы хотите это сделать, вы должны создать диалог самостоятельно, используя один из конструкторов QMessageBox.
Эта функция была добавлена в Qt 4.2.
См. также question(), warning() и information().
QPushButton *QMessageBox::defaultButton() const
Возвращает кнопку, которая должна быть кнопкой по умолчанию для окна сообщения. Возвращает nullptr, если кнопка по умолчанию не была установлена.
Эта функция была добавлена в Qt 4.2.
См. также setDefaultButton(), addButton() и QPushButton::setDefault().
QAbstractButton *QMessageBox::escapeButton() const
Возвращает кнопку, которая активируется при нажатии клавиши Escape.
По умолчанию QMessageBox пытается автоматически определить кнопку Escape следующим образом:
- Если кнопка только одна, она становится кнопкой выхода.
- Если есть кнопка Отмена, она становится кнопкой выхода.
- Только на macOS, если ровно одна кнопка имеет роль QMessageBox::RejectRole, она становится кнопкой выхода.
Если кнопка выхода не была автоматически распознана, нажатие клавиши Esc не оказывает никакого эффекта.
Эта функция была введена в Qt 4.2.
См. также setEscapeButton() и addButton().
[override virtual protected] bool QMessageBox::event(QEvent *e)
Переопределяет: QWidget::event(QEvent *event).
[static] QMessageBox::StandardButton QMessageBox::information(QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = Ok, 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(QKeyEvent *e).
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 = StandardButtons(Yes | No), 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(QResizeEvent *).
void QMessageBox::setCheckBox(QCheckBox *cb)
Устанавливает флажок cb на диалоговом окне сообщения. Диалоговое окно сообщения принимает владение флажком. Аргумент cb может быть nullptr для удаления существующего флажка из диалогового окна сообщения.
Эта функция была введена в 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.
[override virtual protected] void QMessageBox::showEvent(QShowEvent *e)
Переопределяет: QDialog::showEvent(QShowEvent *event).
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 = Ok, 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.14/qmessagebox.html