Многие приложения при запуске выводят на экран заставки. Некоторыми разработчиками заставки используются, чтобы сделать менее заметным медленный запуск приложения, а в других случаях это делается для удовлетворения требований отделений, отвечающих за маркетинг. Можно очень просто добавить заставку в приложение Qt, используя класс QSplashScreen.

Класс QSplashScreen выводит на экран изображение до появления главного окна. Он также может вывести на изображение сообщение, информирующее пользователя о ходе процесса инициализации приложения. Обычно вызов заставки делается в функции main до вызова функции QApplication::exec.

Ниже приводится пример функции main, которая использует QSplashScreen для вывода заставки приложения, которое загружает модули и устанавливает сетевые соединения при запуске.

01 int main(int argc, char *argv[])

02 {

03 QApplication app(argc, argv);

04 QSplashScreen *splash = new QSplashScreen;

05 splash->setPixmap(QPixmap(":/images/splash.png"));

06 splash->show;

07 Qt::Alignment topRight = Qt::AlignRight | Qt::AlignTop;

08 splash->showMessage(QObject::tr("Setting up the main window…"),

09 topRight, Qt::white);

10 MainWindow mainWin;

11 splash->showMessage(QObject::tr("Loading modules…"),

12 topRight, Qt::white);

13 loadModules;

14 splash->showMessage(QObject::tr("Establishing connections…"),

15 topRight, Qt::white);

16 establishConnections;

17 mainWin.show;

18 splash->finish(&mainWin);

19 delete splash;

20 return app.exec;

21 }

Рис. 3.18. Экранная заставка.

Теперь мы завершили пользовательский интерфейс приложения Электронная таблица. В следующей главе мы реализуем базовые функции электронной таблицы и на этом завершим построение этого приложения.

<p>Глава 4. Реализация функциональности приложения</p>

В двух предыдущих главах мы показали способы создания пользовательского интерфейса приложения Электронная таблица. В данной главе мы завершим программирование функций, обеспечивающих работу этого интерфейса. Кроме того, мы рассмотрим способы загрузки и сохранения файлов, хранения данных в памяти, реализации операций с буфером обмена (clipboard) и добавления поддержки формул электронной таблицы к классу QTableWidget.

<p>Центральный виджет</p>

Центральную область QMainWindow может занимать любой виджет. Ниже дается краткий обзор возможных вариантов.

1. Стандартный виджет Qt

В качестве центрального могут использоваться стандартные виджеты, например QTableWidget или QTextEdit. В данном случае такие функции, как загрузка и сохранение файлов, должны быть реализованы в другом месте (например, в подклассе QMainWindow).

2. Пользовательский виджет

В специализированных приложениях часто требуется показывать данные в пользовательском виджете. Например, программа редактирования пиктограмм могла бы в качестве центрального использовать виджет IconEditor. В главе 5 рассматриваются способы написания пользовательских виджетов с помощью средств разработки Qt.

3. Базовый виджет QWidget с менеджером компоновки

Иногда в центральной области приложения размещается много виджетов. Это можно сделать путем применения QWidget в качестве родительского виджета по отношению ко всем другим виджетам и использовать менеджеры компоновки для задания дочерним виджетам их размера и положения.

4. Разделитель

Другой способ размещения в центральной области нескольких виджетов заключается в применении разделителя QSplitter. QSplitter размещает свои дочерние виджеты по горизонтали или по вертикали и предоставляет пользователю некоторые возможности по управлению размерами виджетов. Разделители могут содержать любые виджеты, включая другие разделители.

5. Рабочая область (workspace) интерфейса MDI

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже