Logo
  • Главная
  • Новости
  • Статьи
  • Контакты
  • Главная
  • Статьи

Предшествующее окно QSplashScreen

Оглавление

  • Класс главного окна QMainWindow
  • Предшествующее окно QSplashScreen
  • Класс действия QAction
  • SDI- и MDI-приложения в Qt
  • Создание SDI-приложений в Qt
  • Создание MDI-приложений в Qt

При запуске многие приложения показывают, так называемое, предшествующее окно (Splash Screen). Это окно отображается на время, необходимое для инициализации приложения, и информирует о ходе запуска приложения. Зачастую такое окно используют для маскировки длительного процесса старта программы.

{рисунок}

В библиотеке Qt это окно реализовано в классе QSpiashScreen. Объект этого класса создается в функции main() до вызова метода exec() объекта приложения. Следующая программа отображает перед запуском предшествующее окно, производящее отсчет прогресса инициализации в процентах.


#include <QtGui>

void loadModules(QSplashScreen* psplash)
{
    QTime time;
    time.start();

    for (int i = 0; i < 100; ) {
        if (time.elapsed() > 40) {
            time.start();
            ++i;
        }
        psplash->showMessage("Loading modules: " 
                             + QString::number(i) + "%", 
                             Qt::AlignHCenter | Qt::AlignBottom, 
                             Qt::black
                            );
    }
}

int main (int argc, char** argv)
{
    QApplication  app(argc, argv);
    QSplashScreen splash(QPixmap("splash.png"));

    splash.show();
  
    QLabel lbl("<H1><CENTER>My Application<BR>"
               "Is Ready!</CENTER></H1>"
              );

    loadModules(&splash);

    splash.finish(&lbl);

    lbl.resize(250, 250);
    lbl.show();

    return app.exec();
}

Объект предшествующего окна создается после объекта приложения. В конструктор предшествующего окна передается растровое изображение, которое будет отображаться после вызова метода show(). Виджет QLabel представляет, в данном примере, само приложение, которое должно быть запущено. Функция loadModules() является эмуляцией загрузки модулей программы, в нее передается адрес объекта предшествующего окна, чтобы функция была в состоянии отображать информацию прогресса загрузки. Объект класса QTime используется для того, чтобы значение переменной i увеличивалось только по истечении 40 миллисекунд. Отображение информации производится при помощи метода showMessage(), в который первым параметром передается текст, вторым — расположение текста, а третьим — цвет текста. Вызов метода finish() производит закрытие предшествующего окна. Если его не закрывать, то оно останется видимым до тех пор, пока пользователь не щелкнет на нем мышью.

Читать далее: Класс действия QAction

Реклама

http://kitaiskie-planshety.ru

 

Новости

11 апреля 2012. Спустя три года после начала разработки компания Nokia представила релиз проекта Qt 3D 1.0. Это первый стабильный релиз, содержащий кроссплатформенные библиотеки для работы с трехмерной графикой. Qt 3D позволяет программистам, использующим Qt, добавить в свои программы трехмерные объекты и работать с ними методами, аналогичными методам работы с изображениями и битовыми картами. Qt 3D состоит из двух базовых библиотек Qt3D-C++ API и Qt3DQuick. Первая призвана заменить прямое использование библиотеки OpenGL в программах на Qt на объектно-ориентировнную C++ реализацию. Вторая представляет собой QML-биндинг к API Qt3D и позволяет использовать функции Qt3D в программах на языке QML.

7 марта 2012 стало известно, что один из крупнейших производителей мобильных телефонов, финская компания Nokia продаст подразделение, отчечающее за лицензирование Qt-приложений. Новым владельцем части бизнеса Nokia окажется финская компания Digia.

Последние публикации

  • Создание диалоговых окон в Qt
  • Создание стандартных диалоговых окон
  • Окна сообщений QMessageBox
  • Предоставление помощи
  • Панель инструментов QToolBar в Qt
  • Класс главного окна QMainWindow
  • Работа с файлами, директориями и потоками ввода/вывода в Qt
  • Программирование баз данных с помощью Qt
  • Программирование поддержки сети в Qt
  • Дата и время в Qt
  • Процессы и потоки в Qt
  • Работа с XML
  • Динамические библиотеки и система расширений
  • Совместное использование Qt с платформозависимыми API
  • Проведение тестов
Программирование на Qt
qt-doc.ru 9 из 10 на основе 5 оценок пользователей из 7 оценивших