×
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.
259 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×