×
Namespaces

Variants
Actions

Archived:Работа с Message Box в Qt

From Nokia Developer Wiki
Jump to: navigation, search

Archived.pngОтправлено в архив: Данная статья отправлена в архив так как, на сегодняшний день, не представляет ценности для сторонних разработчиков коммерческих решений. 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.

Article Metadata

Совместимость
Платформа(ы):
Symbian

Статья
Перевод:
night_amir
Последнее редактирование: hamishwillee (11 Oct 2012)

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");
This page was last modified on 11 October 2012, at 04:15.
337 page views in the last 30 days.
×