Spec-Zone.ru › Qt 5.13

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

Свойства

  • 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 * escapeButton() const
QMessageBox::Icon icon() const
QPixmap iconPixmap() const
QString informativeText() const
void open(QObject *receiver, const char *member)
void removeButton(QAbstractButton *button)
void setCheckBox(QCheckBox *cb)
void setDefaultButton(QPushButton *button)
void setDefaultButton(QMessageBox::StandardButton button)
void setDetailedText(const QString &text)
void setEscapeButton(QAbstractButton *button)
void setEscapeButton(QMessageBox::StandardButton button)
void setIcon(QMessageBox::Icon)
void setIconPixmap(const QPixmap &pixmap)
void setInformativeText(const QString &text)
void setStandardButtons(QMessageBox::StandardButtons buttons)
void setText(const QString &text)
void setTextFormat(Qt::TextFormat format)
void setTextInteractionFlags(Qt::TextInteractionFlags flags)
void setWindowModality(Qt::WindowModality windowModality)
void setWindowTitle(const QString &title)
QMessageBox::StandardButton standardButton(QAbstractButton *button) const
QMessageBox::StandardButtons standardButtons() const
QString text() const
Qt::TextFormat textFormat() const
Qt::TextInteractionFlags 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

Подробное описание

Окно сообщения отображает основное сообщение, чтобы проинформировать пользователя о ситуации, дополнительное сообщение для дальнейшего объяснения или вопроса к пользователю, и необязательное подробное сообщение для предоставления еще больше данных по запросу пользователя. Окно сообщения также может отображать иконку и стандартные кнопки для получения ответа пользователя.

Предоставляются два API для использования QMessageBox: API на основе свойств и статические функции. Вызов одной из статических функций — более простой подход, но он менее гибкий, чем использование API на основе свойств, и результат менее информативен. Рекомендуется использовать API на основе свойств.

API на основе свойств

Для использования API на основе свойств создайте экземпляр QMessageBox, установите необходимые свойства и вызовите exec() для отображения сообщения. Самый простой вариант — установить только свойство текста сообщения.

QMessageBox msgBox;
msgBox.setText("The document has been modified.");
msgBox.exec();

Пользователь должен нажать кнопку OK, чтобы закрыть окно сообщения. Остальная часть пользовательского интерфейса заблокируется до закрытия окна сообщения.

Лучший подход, чем просто оповещение пользователя о событии, — это также запросить у пользователя, что делать. Сохраните вопрос в свойстве дополнительного текста и установите свойство стандартных кнопок на набор кнопок, которые вы хотите использовать в качестве набора ответов пользователя. Кнопки задаются путём объединения значений из StandardButtons с помощью побитового ИЛИ. Порядок отображения кнопок зависит от платформы. Например, в Windows кнопка Сохранить отображается слева от кнопки Отмена, а в macOS — наоборот.

Укажите одну из стандартных кнопок как по умолчанию.

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 рекомендуют использовать имя приложения qCoreApplication в качестве заголовка окна, что означает, что если у вас есть дополнительный текст помимо основного текста, вам нужно объединить его с параметром 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);

Пример Standard Dialogs показывает, как использовать 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 пытается найти её на основе ролей кнопок, используемых в окне сообщения.

Кнопка Escape (кнопка, активируемая при нажатии клавиши Esc) может быть указана с помощью setEscapeButton(). Если кнопка Escape не указана, QMessageBox пытается найти её, используя следующие правила:

  1. Если есть только одна кнопка, она активируется при нажатии клавиши Esc.
  2. Если есть кнопка Cancel, она активируется при нажатии клавиши Esc.
  3. Если есть ровно одна кнопка, имеющая либо роль Reject, либо роль No, она активируется при нажатии клавиши Esc.

Если кнопку Escape невозможно определить, используя эти правила, нажатие клавиши Esc не оказывает никакого эффекта.

См. также QDialogButtonBox, GUI Design Handbook: Message Box, Пример Standard Dialogs и Пример Application.

Описание типов элементов

enum QMessageBox::Icon

Это перечисление имеет следующие значения:

Константа Значение Описание
QMessageBox::NoIcon 0 окно сообщения не содержит никаких значков.
QMessageBox::Question 4 значок, указывающий на то, что сообщение задаёт вопрос.
QMessageBox::Information 1 значок, указывающий на то, что сообщение не содержит ничего необычного.
QMessageBox::Warning 2 значок, указывающий на то, что сообщение является предупреждением, но с ним можно справиться.
QMessageBox::Critical 3 значок, указывающий на то, что сообщение представляет собой критическую проблему.

enum QMessageBox::StandardButtonflags QMessageBox::StandardButtons

Эти перечисления описывают флаги для стандартных кнопок. Каждая кнопка имеет определённую ButtonRole.

Константа Значение Описание
QMessageBox::Ok 0x00000400 Кнопка "OK", определённая с помощью 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 является typedef для 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)

См. также icon.

informativeText : QString

Это свойство содержит информативный текст, который предоставляет более полное описание сообщения.

Информативный текст может быть использован для расширения текста text() с целью предоставления дополнительной информации пользователю. На Mac этот текст отображается мелким системным шрифтом ниже текста 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(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 его родительского объекта parent, установите модальность окна сообщения в 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 с заданным title и центрированным над parent (если parent не nullptr). Сообщение включает номер версии Qt, используемой приложением.

Это полезно для включения в меню Справка приложения, как показано в примере Меню.

QApplication предоставляет эту функциональность как слот.

На macOS окно "О Qt" открывается как бескомпонентное окно, на других платформах оно сейчас модальное для приложения.

См. также QApplication::aboutQt().

void QMessageBox::addButton(QAbstractButton *button, QMessageBox::ButtonRole role)

Добавляет указанную button в окно сообщения со значением role.

Эта функция была введена в Qt 4.2.

См. также removeButton(), button() и setStandardButtons().

QPushButton *QMessageBox::addButton(const QString &text, QMessageBox::ButtonRole role)

Это перегруженная функция.

Создаёт кнопку с заданным text, добавляет её в окно сообщения для указанного role и возвращает её.

Эта функция была введена в Qt 4.2.

QPushButton *QMessageBox::addButton(QMessageBox::StandardButton button)

Это перегруженная функция.

Добавляет стандартную 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 и кнопка выхода не была задана.

Если 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 пытается автоматически определить кнопку выхода следующим образом:

  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, возвращается кнопка выхода.

Диалоговое окно сообщения является диалоговым окном приложения с модальной настройкой.

Предупреждение: Не удаляйте 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.13/qmessagebox.html

Spec-Zone.ru

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