Книга: Основы программирования в Linux

QMessageBox

QMessageBox

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

У класса QMessageBox есть статические методы создания и отображения окон всех трех перечисленных типов:

#include <qmessagebox.h>
int information(QWidget *parent, const QString& caption,
 const QString&text, int button0, int button1=0, int button2=0);
int warning(QWidget *parent, const QString& caption,
 const QString& text, int button0, int button1, int button2=0);
int critical(QWidget *parent, const QString& caption,
 const QString& text, int button0, int button1, int button2=0);

Можно выбрать кнопки из списка готовых кнопок QMessageBox, соответствующих значениям, возвращаемым статическими методами:

? QMessageBox::Ok;

? QMessageBox::Cancel;

? QMessageBox::Yes;

? QMessageBox::No;

? QMessageBox::Abort;

? QMessageBox::Retry;

? QMessageBox::Ignore.

Типичный пример использования окна QMessageBox будет похож на приведенный далее фрагмент программного кода:

int result = QMessageBox::information(this,
 "Engine Room Query",
 "Do you wish to engage the HyperDrive?",
 QMessageBox::Yes | QMessageBox::Default,
 QMessageBox::No | QMessageBox::Escape);
switch (result) {
case QMessageBox::Yes:
 hyperdrive->engage();
 break;
case QMessageBox::No:
 // сделайте что-нибудь еще
 break;
}

Вы соединили операцией OR(|) коды кнопок с вариантами Default и Escape, чтобы задать стандартные действия, при нажатии клавиш <Enter> (или <Return>) и <Esc>. Результирующее диалоговое окно показано на рис. 17.8.


Рис. 17.8 

Оглавление книги


Генерация: 8.976. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз