Как сделать красиво загрузку?

Хочу сделать в своей программе картинку загрузки. Знаете, вот когда .exe только начинает загружатся и появляется картинка программы с прогрессом загрузки.
Но как это сделать?
  • Вопрос задан
  • 650 просмотров
Пригласить эксперта
Ответы на вопрос 1
@developerxyz
Это окошко реализуется в Qt с помощью класса QSplashScreen
Создаем QSplashScreen с QPixmap для заднего фона
QSplashScreen splashScreen(/*const QPixmap& pixmap*/ QPixmap("/путь/до/вашей/картинки.png"));

Далее показываем это окошко
splashScreen.show(); //возвращает void
И выставляем текст (это просто показывает текст, можно использовать между QSplashScreen::show(); и QSplashScreen::finish();
splashScreen.showMessage(
    /*const QString &message*/ "Сообщение",
    /*int alignment = Qt::AlignLeft*/ Положение текста,
    /*const QColor &color = Qt::black*/ Цвет QColor);

Положение текста - битовая комбинация вертикального и горизонтального выравнивания
Qt::Alignment
Горизонтальное выравнивание
КонстантаЗначениеОписание
Qt::AlignLeft0x0001Выравнивание по левому краю
Qt::AlignRight0x0002Выравнивание по правому
краю
Qt::AlignHCenter0x0004Выравнивание по центру
(горизонтально)

Вертикальное выравнивание
КонстантаЗначениеОписание
Qt::AlignTop0x0020Выравнивание по верху
Qt::AlignBottom0x0040Выравнивание по низу
Qt::AlignVCenter0x0080Выравнивание по центру
(вертикально)
Немного больше флагов (англ.)
Можно использовать не более одного ключа из одной группы.
Пример: Qt::AlighVCenter | Qt::AlignHCenter - по абсолютному центру окна

Для завершения QSplashScreen надо вызвать функцию finish:
splashScreen.finish(/*QWidget * mainWin*/ this); //this если ваш класс наследуется от QWidget

Эта функция будет ждать показа окна mainWin и только после этого QSplashScreen закроется.

Это самые простые функции. Если надо "что-то посложнее", то берем и создаем свой SplashScreen и отрисовываем сами (так же, как и в QWidget-е)
Надеюсь, что мой ответ Вам помог.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы