Подготовка к работе
За работу с всплывающими
сообщениями в Qt отвечает модуль
QMessageBox, поэтому необходимо подключить
его в исходнике:
#include<QMessageBox>
Простой Message Box без обработки вариантов ответа
Создание простого
Message Box без обработки вариантов ответа
(по сути это просто всплывающее окно,
убирается по нажатию на центр джойстика).
#include<QtGui/QApplication>
#include<QMessageBox>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMessageBox msgBox;
msgBox.setText("Hello Here");
msgBox.exec();
app.quit();
return 1;
}
#include<QMessageBox>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMessageBox msgBox;
msgBox.setText("Hello Here");
msgBox.exec();
app.quit();
return 1;
}
"Умный" Message Box с обработкой вариантов ответа
Для интереса добавим
появление этого бокса по нажатию на
кнопку: Создаем на форме кнопку, жмем
на ней правой кнопкой мыши - Перейти к
слоту. Выбираем clicked() и вставляем туда
следующий код:
QMessageBox msgBox;
// Заголовок сообщения
msgBox.setText("Testing..");
// Тип иконки сообщения
msgBox.setIcon(QMessageBox::Information);
// Основное сообщение Message Box
msgBox.setInformativeText("Just show infornation.");
// Добавление реагирования на софт клавиши
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
// На какой кнопке фокусироваться по умолчанию
msgBox.setDefaultButton(QMessageBox::Ok);
/* Запускаем QMessageBox. После выполнения, в ret будет лежать значение кнопки, на которую нажали - это необходимо для дальнейшей обработки событий*/
int ret = msgBox.exec();
// Собственно вот этот case и отвечает за обработку событий
switch (ret) {
case QMessageBox::Save:
// Сюда пишем обработку события Cancel
break;
case QMessageBox::Ok:
// Сюда пишем обработку события Ok
break;
default:
// Сюда пишем обработку события по умолчанию
break;
}
// Заголовок сообщения
msgBox.setText("Testing..");
// Тип иконки сообщения
msgBox.setIcon(QMessageBox::Information);
// Основное сообщение Message Box
msgBox.setInformativeText("Just show infornation.");
// Добавление реагирования на софт клавиши
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
// На какой кнопке фокусироваться по умолчанию
msgBox.setDefaultButton(QMessageBox::Ok);
/* Запускаем QMessageBox. После выполнения, в ret будет лежать значение кнопки, на которую нажали - это необходимо для дальнейшей обработки событий*/
int ret = msgBox.exec();
// Собственно вот этот case и отвечает за обработку событий
switch (ret) {
case QMessageBox::Save:
// Сюда пишем обработку события Cancel
break;
case QMessageBox::Ok:
// Сюда пишем обработку события Ok
break;
default:
// Сюда пишем обработку события по умолчанию
break;
}
Несколько "быстрых" вариантов создания MessageBox
QMessageBox::warning(0,"Warning", "Warning message text");
QMessageBox::information(0, "Information", "Information message text");
QMessageBox::critical(0, "Critical", "Critical message text");
QMessageBox::information(0, "Information", "Information message text");
QMessageBox::critical(0, "Critical", "Critical message text");
http://nivitalik.ru/users/ixyququw
ОтветитьУдалить