Archived:Работа с Message Box в Qt
Отправлено в архив: Данная статья отправлена в архив так как, на сегодняшний день, не представляет ценности для сторонних разработчиков коммерческих решений. If you think this article is still relevant, let us know by adding the template {{ForArchiveReview|write your reason here}}.
Qt Quick should be used for all UI development on mobile devices. The approach described in this article (based on QWidget) is deprecated.
Qt Quick should be used for all UI development on mobile devices. The approach described in this article (based on QWidget) is deprecated.
Метаданные
Contents |
Подготовка к работе
За работу с всплывающими сообщениями в 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;
}
"Умный" Message Box с обработкой вариантов ответа
Для интереса добавим появление этого бокса по нажатию на кнопку: Создаем на форме кнопку, жмем на ней правой кнопкой мыши - Перейти к слоту. Выбираем clicked() и вставляем туда следующий код:
QMessageBox msgBox;
msgBox.setWindowTitle("My Message Box"); // Заголовок окна сообщения
msgBox.setText("Testing.."); // Заголовок сообщения
msgBox.setIcon(QMessageBox::Information); // Тип иконки сообщения
msgBox.setInformativeText("Just show infornation."); // Основное сообщение Message Box
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel); // Добавление реагирования на софт клавиши
msgBox.setDefaultButton(QMessageBox::Ok); // На какой кнопке фокусироваться по умолчанию
int ret = msgBox.exec(); // Запускаем QMessageBox. После выполнения, в ret будет лежать значение кнопки, на которую нажали - это необходимо для дальнейшей обработки событий
switch (ret) { // Собственно вот этот case и отвечает за обработку событий
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");


(no comments yet)