Класс QMessageBox
Класс QMessageBox предоставляет модальное диалоговое окно для информирования пользователя или для задавания вопроса и получения ответа. Подробнее...
| Заголовок: | #include <QMessageBox> |
| qmake: | QT += widgets |
| Наследуется от: | QDialog |
Типы
| Перечисление | ButtonRole { InvalidRole, AcceptRole, RejectRole, DestructiveRole, ..., ResetRole } |
| Перечисление | Icon { NoIcon, Question, Information, Warning, Critical } |
| Перечисление | StandardButton { Ok, Open, Save, Cancel, ..., ButtonMask } |
| Флаги | StandardButtons |
Свойства
|
|
- 2 свойства унаследованы от QDialog
- 58 свойств унаследовано от QWidget
- 1 свойство унаследовано от QObject
Открытые функции
| QMessageBox(QWidget *parent = Q_NULLPTR) | |
| QMessageBox(Icon icon, const QString &title, const QString &text, StandardButtons buttons = NoButton, QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint) | |
| ~QMessageBox() | |
| void | addButton(QAbstractButton *button, ButtonRole role) |
| QPushButton * | addButton(const QString &text, ButtonRole role) |
| QPushButton * | addButton(StandardButton button) |
| QAbstractButton * | button(StandardButton which) const |
| ButtonRole | buttonRole(QAbstractButton *button) const |
| QList<QAbstractButton *> | buttons() const |
| QCheckBox * | checkBox() const |
| QAbstractButton * | clickedButton() const |
| QPushButton * | defaultButton() const |
| QString | detailedText() const |
| QAbstractButton * | escapeButton() const |
| 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(StandardButton button) |
| void | setDetailedText(const QString &text) |
| void | setEscapeButton(QAbstractButton *button) |
| void | setEscapeButton(StandardButton button) |
| void | setIcon(Icon) |
| void | setIconPixmap(const QPixmap &pixmap) |
| void | setInformativeText(const QString &text) |
| void | setStandardButtons(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) |
| StandardButton | standardButton(QAbstractButton *button) const |
| StandardButtons | standardButtons() const |
| QString | text() const |
| Qt::TextFormat | textFormat() const |
| Qt::TextInteractionFlags | textInteractionFlags() const |
Переопределённые открытые функции
| virtual void | setVisible(bool visible) |
- 8 открытых функций унаследовано от QDialog
- 211 открытых функций унаследовано от QWidget
- 31 открытой функции унаследовано от QObject
- 14 открытых функций унаследовано от QPaintDevice
Открытые слоты
| virtual int | exec() |
- 5 public slots унаследованы от QDialog
- 19 public slots унаследованы от QWidget
- 1 public slot унаследован от QObject
Сигналы
| void | buttonClicked(QAbstractButton *button) |
- 3 сигнала унаследованы от QDialog
- 3 сигнала унаследованы от QWidget
- 2 сигнала унаследованы от QObject
Статические публичные члены
| void | about(QWidget *parent, const QString &title, const QString &text) |
| void | aboutQt(QWidget *parent, const QString &title = QString()) |
| StandardButton | critical(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton) |
| StandardButton | information(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton) |
| StandardButton | question(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons = StandardButtons( Yes | No ), StandardButton defaultButton = NoButton) |
| StandardButton | warning(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton) |
Переопределённые защищённые функции
| virtual void | changeEvent(QEvent *ev) |
| virtual void | closeEvent(QCloseEvent *e) |
| virtual bool | event(QEvent *e) |
| virtual void | keyPressEvent(QKeyEvent *e) |
| virtual void | resizeEvent(QResizeEvent *event) |
| virtual void | showEvent(QShowEvent *e) |
- 7 защищённые функции унаследованы от QDialog
- 35 защищённые функции унаследованы от QWidget
- 9 защищённые функции унаследованы от QObject
- 1 защищённая функция унаследована от QPaintDevice
Дополнительные унаследованные члены
- 7 protected functions inherited from QDialog
- 35 protected functions inherited from QWidget
- 9 protected functions inherited from QObject
- 1 protected function inherited from QPaintDevice
- 1 protected slot унаследован от QWidget
Подробное описание
Класс QMessageBox предоставляет модальный диалог для информирования пользователя или для задавания ему вопроса и получения ответа.
Окно сообщений отображает основное сообщение для информирования пользователя о ситуации, информационное сообщение для дальнейшего объяснения или задавания пользователю вопроса, и необязательное подробное сообщение для предоставления ещё большего количества данных по запросу пользователя. Окно сообщений может также отображать иконку и стандартные кнопки для принятия ответа пользователя.
Предоставляются два API для использования QMessageBox: API на основе свойств и статические функции. Вызов одной из статических функций — более простой подход, но он менее гибкий, чем использование API на основе свойств, и результат менее информативный. Рекомендуется использовать API на основе свойств.
API на основе свойств
Для использования API на основе свойств создайте экземпляр QMessageBox, задайте необходимые свойства и вызовите exec() для отображения сообщения. Самый простой способ — задать только свойство текста сообщения.
QMessageBox msgBox;
msgBox.setText("The document has been modified.");
msgBox.exec(); Пользователь должен нажать кнопку OK, чтобы закрыть окно сообщений. Остальная часть пользовательского интерфейса заблокируется до тех пор, пока окно сообщений не будет закрыто.
Лучше, чем просто информировать пользователя о событии, — также спросить его, что делать с ним. Сохраните вопрос в свойстве информационного текста и установите свойство стандартных кнопок на набор кнопок, который вы хотите, как набор ответов пользователя. Кнопки задаются путём объединения значений из 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
} Клавиши по умолчанию и Esc
Кнопка по умолчанию (т.е., кнопка, активируемая при нажатии клавиши 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::StandardButtonflags QMessageBox::StandardButtons
Эти перечисления описывают флаги для стандартных кнопок. Каждая кнопка имеет определённую ButtonRole.
| Постоянная | Значение | Описание |
|---|---|---|
QMessageBox::Ok |
0x00000400 |
Кнопка "ОК", определенная с помощью AcceptRole. |
QMessageBox::Open |
0x00002000 |
Кнопка "Открыть", определенная с помощью AcceptRole. |
QMessageBox::Save |
0x00000800 |
Кнопка "Сохранить", определенная с помощью AcceptRole. |
QMessageBox::Cancel |
0x00400000 |
Кнопка "Отмена", определенная с помощью RejectRole. |
QMessageBox::Close |
0x00200000 |
Кнопка "Закрыть", определенная с помощью RejectRole. |
QMessageBox::Discard |
0x00800000 |
Кнопка "Отбросить" или "Не сохранять", в зависимости от платформы, определенная с помощью DestructiveRole. |
QMessageBox::Apply |
0x02000000 |
Кнопка "Применить", определенная с помощью ApplyRole. |
QMessageBox::Reset |
0x04000000 |
Кнопка "Сбросить", определенная с помощью ResetRole. |
QMessageBox::RestoreDefaults |
0x08000000 |
Кнопка "Восстановить значения по умолчанию", определенная с помощью ResetRole. |
QMessageBox::Help |
0x01000000 |
Кнопка "Справка", определенная с помощью HelpRole. |
QMessageBox::SaveAll |
0x00001000 |
Кнопка "Сохранить все", определенная с помощью AcceptRole. |
QMessageBox::Yes |
0x00004000 |
Кнопка "Да", определенная с помощью YesRole. |
QMessageBox::YesToAll |
0x00008000 |
Кнопка "Да для всех", определенная с помощью YesRole. |
QMessageBox::No |
0x00010000 |
Кнопка "Нет", определенная с помощью NoRole. |
QMessageBox::NoToAll |
0x00020000 |
Кнопка "Нет для всех", определенная с помощью NoRole. |
QMessageBox::Abort |
0x00040000 |
Кнопка "Прервать", определенная с помощью RejectRole. |
QMessageBox::Retry |
0x00080000 |
Кнопка "Повторить", определенная с помощью AcceptRole. |
QMessageBox::Ignore |
0x00100000 |
Кнопка "Пропустить", определенная с помощью AcceptRole. |
QMessageBox::NoButton |
0x00000000 |
Недействительная кнопка. |
Следующие значения устарели:
| Постоянная | Значение | Описание |
|---|---|---|
QMessageBox::YesAll |
YesToAll |
Используйте YesToAll вместо этого. |
QMessageBox::NoAll |
NoToAll |
Используйте NoToAll вместо этого. |
QMessageBox::Default |
0x00000100 |
Используйте аргумент defaultButton функции information(), warning() и т.д. вместо этого, или вызовите setDefaultButton(). |
QMessageBox::Escape |
0x00000200 |
Вызовите setEscapeButton() вместо этого. |
QMessageBox::FlagMask |
0x00000300 |
|
QMessageBox::ButtonMask |
~FlagMask |
Этот перечисление был введен или изменен в Qt 4.2.
Тип StandardButtons является псевдонимом для QFlags<StandardButton>. Он хранит логическое ИЛИ сочетание значений StandardButton.
См. также 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 | icon() const |
| void | setIcon(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.
Функции доступа:
| StandardButtons | standardButtons() const |
| void | setStandardButtons(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(QWidget *parent = Q_NULLPTR)
Создает диалоговое окно с сообщением без текста и кнопок. parent передается конструктору QDialog.
В macOS, если вы хотите, чтобы ваше диалоговое окно с сообщением отображалось как Qt::Sheet родительского элемента, установите модальность окна диалогового окна с сообщением на Qt::WindowModal или используйте open(). В противном случае диалоговое окно с сообщением будет стандартным.
QMessageBox::QMessageBox(Icon icon, const QString &title, const QString &text, StandardButtons buttons = NoButton, QWidget *parent = Q_NULLPTR, Qt::WindowFlags f = Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint)
Создает диалоговое окно с сообщением с заданным значком icon, заголовком title, текстом text и стандартными кнопками buttons. Стандартные или пользовательские кнопки можно добавить в любое время, используя addButton(). Аргументы parent и f передаются конструктору QDialog.
Диалоговое окно с сообщением — модальное диалоговое окно приложения.
В macOS, если parent не равен 0 и вы хотите, чтобы ваше диалоговое окно с сообщением отображалось как Qt::Sheet родительского элемента, установите модальность окна диалогового окна с сообщением на Qt::WindowModal (по умолчанию). В противном случае диалоговое окно с сообщением будет стандартным.
См. также setWindowTitle(), setText(), setIcon() и setStandardButtons().
QMessageBox::~QMessageBox()
Удаляет диалоговое окно с сообщением.
[static] void QMessageBox::about(QWidget *parent, const QString &title, const QString &text)
Отображает простое диалоговое окно «О программе» с заголовком title и текстом text. Родительским элементом диалогового окна «О программе» является parent.
about() ищет подходящий значок в четырёх местах:
- Он предпочитает parent->icon(), если она существует.
- В противном случае он пытается получить виджет верхнего уровня, содержащий parent.
- Если это не удаётся, он пытается получить активное окно.
- В качестве последнего средства используется значок информации.
Диалоговое окно «О программе» содержит единственную кнопку с надписью «ОК». В macOS диалоговое окно «О программе» открывается как модальное окно; на других платформах оно в настоящее время является модальным для всей программы.
См. также QWidget::windowIcon() и QApplication::activeWindow().
[static] void QMessageBox::aboutQt(QWidget *parent, const QString &title = QString())
Отображает простое диалоговое окно «О Qt» с заданным title и центрированное над parent (если parent не равно 0). Сообщение включает номер версии Qt, используемой приложением.
Это полезно для включения в меню Справка приложения, как показано в примере Меню.
QApplication предоставляет эту функциональность как слот.
В macOS диалоговое окно «О программе» открывается как безальтернативное окно; на других платформах оно в настоящее время является модальным для всей программы.
См. также QApplication::aboutQt().
void QMessageBox::addButton(QAbstractButton *button, ButtonRole role)
Добавляет указанную button в диалоговое окно с указанной role.
Эта функция была введена в Qt 4.2.
См. также removeButton(), button() и setStandardButtons().
QPushButton *QMessageBox::addButton(const QString &text, ButtonRole role)
Это перегруженная функция.
Создаёт кнопку с заданным text, добавляет её в диалоговое окно для указанной role и возвращает её.
Эта функция была введена в Qt 4.2.
QPushButton *QMessageBox::addButton(StandardButton button)
Это перегруженная функция.
Добавляет стандартную button в диалоговое окно, если это возможно, и возвращает кнопку.
Эта функция была введена в Qt 4.2.
См. также setStandardButtons().
QAbstractButton *QMessageBox::button(StandardButton which) const
Возвращает указатель, соответствующий стандартной кнопке which, или 0, если стандартная кнопка не существует в этом диалоговом окне.
Эта функция была введена в Qt 4.2.
См. также standardButtons и standardButton().
[signal] void QMessageBox::buttonClicked(QAbstractButton *button)
Этот сигнал испускается всякий раз, когда нажимается кнопка внутри QMessageBox. Кнопка, на которую был нажат, возвращается в button.
ButtonRole QMessageBox::buttonRole(QAbstractButton *button) const
Возвращает роль кнопки для указанной button. Эта функция возвращает InvalidRole, если button равно 0 или не было добавлено в диалоговое окно.
Эта функция была введена в Qt 4.5.
См. также buttons() и addButton().
QList<QAbstractButton *> QMessageBox::buttons() const
Возвращает список всех кнопок, которые были добавлены в диалоговое окно.
Эта функция была введена в Qt 4.5.
См. также buttonRole(), addButton() и removeButton().
[virtual protected] void QMessageBox::changeEvent(QEvent *ev)
Переопределено из QWidget::changeEvent().
QCheckBox *QMessageBox::checkBox() const
Возвращает отображаемый флажок в диалоговом окне. Это 0, если флажок не установлен.
Эта функция была введена в Qt 5.2.
См. также setCheckBox().
QAbstractButton *QMessageBox::clickedButton() const
Возвращает кнопку, на которую нажал пользователь, или 0, если пользователь нажал клавишу Esc и не была установлена кнопка escape button.
Если exec() ещё не вызвана, возвращает 0.
Пример:
QMessageBox messageBox(this);
QAbstractButton *disconnectButton =
messageBox.addButton(tr("Disconnect"), QMessageBox::ActionRole);
...
messageBox.exec();
if (messageBox.clickedButton() == disconnectButton) {
...
} Эта функция была введена в Qt 4.2.
См. также standardButton() и button().
[virtual protected] void QMessageBox::closeEvent(QCloseEvent *e)
Переопределено из QWidget::closeEvent().
[static] StandardButton QMessageBox::critical(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton)
Открывает диалоговое окно критического сообщения с заданным title и text перед указанным виджетом parent.
Стандартные buttons добавляются в диалоговое окно. defaultButton задаёт кнопку, используемую при нажатии Enter. defaultButton должен ссылаться на кнопку, которая была указана в buttons. Если defaultButton равно QMessageBox::NoButton, QMessageBox автоматически выбирает подходящую кнопку по умолчанию.
Возвращает идентификатор стандартной кнопки, которая была нажата. Если вместо этого была нажата Esc, возвращается кнопка escape button.
Диалоговое окно является модальным диалоговым окном.
Предупреждение: Не удаляйте parent во время выполнения диалогового окна. Если вы хотите сделать это, вы должны создать диалоговое окно самостоятельно, используя один из конструкторов QMessageBox.
Эта функция была введена в Qt 4.2.
См. также question(), warning() и information().
QPushButton *QMessageBox::defaultButton() const
Возвращает кнопку, которая должна быть кнопкой по умолчанию диалогового окна. Возвращает 0, если кнопка по умолчанию не была установлена.
Эта функция была введена в Qt 4.2.
См. также setDefaultButton(), addButton() и QPushButton::setDefault().
QAbstractButton *QMessageBox::escapeButton() const
Возвращает кнопку, которая активируется при нажатии клавиши Escape.
По умолчанию, QMessageBox пытается автоматически определить кнопку Escape следующим образом:
- Если кнопок только одна, она становится кнопкой Escape.
- Если есть кнопка Отмена, она становится кнопкой Escape.
- Только в macOS, если есть ровно одна кнопка с ролью QMessageBox::RejectRole, она становится кнопкой Escape.
Когда кнопка Escape не могла быть определена автоматически, нажатие Esc не имеет никакого эффекта.
Эта функция была введена в Qt 4.2.
См. также setEscapeButton() и addButton().
[virtual protected] bool QMessageBox::event(QEvent *e)
Переопределено из QObject::event().
[virtual slot] int QMessageBox::exec()
Переопределено из QDialog::exec().
Отображает диалоговое окно сообщения в качестве модального диалогового окна, ожидая, пока пользователь его не закроет.
При использовании QMessageBox со стандартными кнопками эта функция возвращает значение StandardButton, указывающее на нажатую стандартную кнопку. При использовании QMessageBox с пользовательскими кнопками эта функция возвращает неопределённое значение; используйте clickedButton() для определения нажатой кнопки.
Примечание: Функция result() также возвращает значение StandardButton вместо QDialog::DialogCode.
Пользователь не может взаимодействовать ни с каким другим окном в том же приложении, пока не закроет диалоговое окно, либо нажав кнопку, либо используя механизм, предоставленный системой окон.
[static] StandardButton QMessageBox::information(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton)
Открывает окно сообщения с информацией с заданным title и text перед указанным виджетом parent.
Стандартные buttons добавляются к окну сообщения. defaultButton указывает кнопку, используемую при нажатии Enter. defaultButton должен ссылаться на кнопку, указанную в buttons. Если defaultButton равен QMessageBox::NoButton, QMessageBox автоматически выбирает подходящую кнопку по умолчанию.
Возвращает идентификатор нажатой стандартной кнопки. Если вместо этого была нажата Esc, возвращается кнопка escape.
Окно сообщения является модальным диалоговым окном приложения.
Предупреждение: Не удаляйте parent во время работы диалога. Если вы хотите это сделать, вы должны создать диалог самостоятельно, используя один из конструкторов QMessageBox.
Функция была введена в Qt 4.2.
См. также question(), warning() и critical().
[virtual protected] void QMessageBox::keyPressEvent(QKeyEvent *e)
Переопределено из QWidget::keyPressEvent().
void QMessageBox::open(QObject *receiver, const char *member)
Это перегруженная функция.
Открывает диалог и подключает его сигнал finished() или buttonClicked() к слоту, указанному receiver и member. Если в слоте member есть указатель для первого параметра, соединение происходит с buttonClicked(), в противном случае — с finished().
Сигнал будет отключен от слота при закрытии диалога.
[static] StandardButton QMessageBox::question(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons = StandardButtons( Yes | No ), StandardButton defaultButton = NoButton)
Открывает окно вопроса с заданным title и text перед указанным виджетом parent.
Стандартные buttons добавляются к окну сообщения. defaultButton указывает кнопку, используемую при нажатии Enter. defaultButton должен ссылаться на кнопку, указанную в buttons. Если defaultButton равен QMessageBox::NoButton, QMessageBox автоматически выбирает подходящую кнопку по умолчанию.
Возвращает идентификатор нажатой стандартной кнопки. Если вместо этого была нажата Esc, возвращается кнопка escape.
Окно сообщения является модальным диалоговым окном приложения.
Предупреждение: Не удаляйте parent во время работы диалога. Если вы хотите это сделать, вы должны создать диалог самостоятельно, используя один из конструкторов QMessageBox.
Функция была введена в Qt 4.2.
См. также information(), warning() и critical().
void QMessageBox::removeButton(QAbstractButton *button)
Удаляет button из панели кнопок без его удаления.
Функция была введена в Qt 4.2.
См. также addButton() и setStandardButtons().
[virtual protected] void QMessageBox::resizeEvent(QResizeEvent *event)
Переопределено из QWidget::resizeEvent().
void QMessageBox::setCheckBox(QCheckBox *cb)
Устанавливает флажок cb в диалоге сообщения. Окно сообщения берет флажок на себя. Аргумент cb может быть 0, чтобы удалить существующий флажок из окна сообщения.
Функция была введена в Qt 5.2.
См. также checkBox().
void QMessageBox::setDefaultButton(QPushButton *button)
Устанавливает кнопку по умолчанию окна сообщения в button.
Функция была введена в Qt 4.2.
См. также defaultButton(), addButton() и QPushButton::setDefault().
void QMessageBox::setDefaultButton(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(StandardButton button)
Устанавливает кнопку, которая активируется при нажатии клавиши Escape, на button.
Функция была введена в Qt 4.3.
См. также addButton() и clickedButton().
[virtual] void QMessageBox::setVisible(bool visible)
Переопределено из QWidget::setVisible().
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.
[virtual protected] void QMessageBox::showEvent(QShowEvent *e)
Переопределено из QWidget::showEvent().
StandardButton QMessageBox::standardButton(QAbstractButton *button) const
Возвращает значение стандартной кнопки перечисления, соответствующее данной button, или NoButton, если данная button не является стандартной кнопкой.
Функция была введена в Qt 4.2.
См. также button() и standardButtons().
[static] StandardButton QMessageBox::warning(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton)
Открывает окно сообщения с предупреждением с заданным title и text перед указанным виджетом parent.
Стандартные кнопки добавляются в окно сообщения. defaultButton указывает кнопку, используемую при нажатии Enter. defaultButton должен ссылаться на кнопку, заданную в buttons. Если defaultButton равен QMessageBox::NoButton, QMessageBox автоматически выбирает подходящую по умолчанию.
Возвращает идентификатор стандартной нажатой кнопки. Если вместо этого была нажата Esc, возвращается кнопка Esc.
Окно сообщения — диалоговое окно приложения модальное.
Предупреждение: Не удаляйте parent во время выполнения диалога. Если вы хотите это сделать, вы должны создать диалог самостоятельно, используя один из конструкторов QMessageBox.
Данная функция была введена в Qt 4.2.
См. также question(), information() и critical().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qmessagebox.html