Spec-Zone.ru › Qt 5.14

Класс 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

Свойства

  • detailedText : QString
  • icon : Icon
  • iconPixmap : QPixmap
  • informativeText : QString
  • standardButtons : StandardButtons
  • text : QString
  • textFormat : Qt::TextFormat
  • textInteractionFlags : Qt::TextInteractionFlags

Публичные функции

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 поддерживает четыре предопределенных уровня серьезности сообщений или типа сообщений, которые фактически отличаются только предопределённой иконкой, отображаемой для каждого типа. Укажите один из четырёх предопределённых типов сообщений, установив свойство иконка на одну из предопределённых иконок. Следующие правила являются рекомендациями:

class="generic">

Вопрос Для постановки вопроса во время обычных операций.

Информация Для сообщения информации об обычных операциях.

Предупреждение Для сообщения о некритических ошибках.

Критическая Для сообщения о критических ошибках.

Предопределённые иконки не определяются 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 пытается найти её, используя следующие правила:

  1. Если кнопка только одна, она активируется при нажатии Esc.
  2. Если есть кнопка Отмена, она активируется при нажатии Esc.
  3. Если есть ровно одна кнопка с ролью Отклонения или ролью Нет, она активируется при нажатии 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.

Пользователи не могут взаимодействовать с другими окнами в том же приложении, пока не закроют диалоговое окно, нажав кнопку или используя механизм, предоставляемый операционной системой.

См. также show() и result().

[virtual] QMessageBox::~QMessageBox()

Удаляет окно сообщения.

[static] void QMessageBox::about(QWidget *parent, const QString &title, const QString &text)

Отображает простое информационное окно с заголовком title и текстом text. Родительским окном информационного окна является parent.

about() ищет подходящий значок в четырёх местах:

  1. Если существует, отдаёт предпочтение parent->icon().
  2. В противном случае, ищет верхнее окно, содержащее parent.
  3. Если это не удаётся, ищет активное окно.
  4. В крайнем случае используется значок «Информация».

Информационное окно имеет единственную кнопку «ОК». В 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 следующим образом:

  1. Если кнопка только одна, она становится кнопкой выхода.
  2. Если есть кнопка Отмена, она становится кнопкой выхода.
  3. Только на 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API