Spec-Zone.ru › Qt 5.11

Класс QSplashScreen

Виджет QSplashScreen обеспечивает отображение экрана загрузки, который может быть показан во время запуска приложения. Подробнее...

Заголовок: #include <QSplashScreen>
qmake: QT += widgets
Наследуется от: QWidget
  • Список всех членов, включая унаследованные

Открытые функции

QSplashScreen(const QPixmap &pixmap = QPixmap(), Qt::WindowFlags f = ...)
QSplashScreen(QWidget *parent, const QPixmap &pixmap = QPixmap(), Qt::WindowFlags f = ...)
virtual ~QSplashScreen()
void finish(QWidget *mainWin)
QString message() const
const QPixmap pixmap() const
void repaint()
void setPixmap(const QPixmap &pixmap)
  • 214 открытых функций, унаследованных от QWidget
  • 34 открытых функций, унаследованных от QObject
  • 14 открытых функций, унаследованных от QPaintDevice

Открытые слоты

void clearMessage()
void showMessage(const QString &message, int alignment = Qt::AlignLeft, const QColor &color = Qt::black)
  • 19 открытых слотов, унаследованных от QWidget
  • 1 открытый слот, унаследованный от QObject

Сигналы

void messageChanged(const QString &message)
  • 3 сигнала, унаследованные от QWidget
  • 2 сигнала, унаследованные от QObject

Защищённые функции

virtual void drawContents(QPainter *painter)

Переопределённые защищённые функции

virtual bool event(QEvent *e) override
virtual void mousePressEvent(QMouseEvent *) override
  • 35 защищённых функций, унаследованных от QWidget
  • 9 защищённых функций, унаследованных от QObject
  • 1 защищённая функция, унаследованная от QPaintDevice

Дополнительные унаследованные члены

  • 59 свойств, унаследованных от QWidget
  • 1 свойство, унаследованное от QObject
  • 1 открытая переменная, унаследованная от QObject
  • 5 статических открытых членов, унаследованных от QWidget
  • 10 статических открытых членов, унаследованных от QObject
  • 1 защищённый слот, унаследованный от QWidget
  • 2 защищённые переменные, унаследованные от QObject
  • 1 защищённый тип, унаследованный от QPaintDevice

Подробное описание

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

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

Экран загрузки появляется в центре экрана. Может быть полезно добавить Qt::WindowStaysOnTopHint к флагам окна виджета экрана загрузки, если вы хотите, чтобы он оставался поверх всех других окон на рабочем столе.

Некоторые диспетчеры окон X11 не поддерживают флаг «оставаться сверху». Решением является настройка таймера, который периодически вызывает raise() на экране загрузки, чтобы имитировать эффект «оставаться сверху».

Наиболее распространённое использование — отображение экрана загрузки перед отображением основного виджета на экране. Это показано в следующем фрагменте кода, в котором отображается экран загрузки, и выполняются некоторые задачи инициализации перед отображением главного окна приложения:

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QPixmap pixmap(":/splash.png");
    QSplashScreen splash(pixmap);
    splash.show();
    app.processEvents();
    ...
    QMainWindow window;
    window.show();
    splash.finish(&window);
    return app.exec();
}

Пользователь может скрыть экран загрузки, щелкнув по нему мышкой. Поскольку экран загрузки обычно отображается до того, как цикл событий начнёт работу, необходимо периодически вызывать QApplication::processEvents() для получения щелчков мыши.

Иногда бывает полезно обновлять экран загрузки сообщениями, например, объявляя установленные соединения или загруженные модули по мере запуска приложения:

QPixmap pixmap(":/splash.png");
QSplashScreen *splash = new QSplashScreen(pixmap);
splash->show();

... // Loading some items
splash->showMessage("Loaded modules");

qApp->processEvents();

... // Establishing connections
splash->showMessage("Established connections");

qApp->processEvents();

QSplashScreen поддерживает это с помощью функции showMessage(). Если вы хотите выполнить своё рисование, вы можете получить указатель на используемую в экране загрузки растровую картинку с помощью pixmap(). В качестве альтернативы, вы можете создать подкласс QSplashScreen и переопределить drawContents().

Документация по функциям-членам

QSplashScreen::QSplashScreen(const QPixmap &pixmap = QPixmap(), Qt::WindowFlags f = ...)

Создаёт экран загрузки, который отобразит pixmap.

Не должно быть необходимости устанавливать флаги виджета, f, за исключением, возможно, Qt::WindowStaysOnTopHint.

QSplashScreen::QSplashScreen(QWidget *parent, const QPixmap &pixmap = QPixmap(), Qt::WindowFlags f = ...)

Это перегруженная функция.

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

[virtual] QSplashScreen::~QSplashScreen()

Деструктор.

[slot] void QSplashScreen::clearMessage()

Удаляет отображаемое на экране загрузки сообщение

См. также showMessage().

[virtual protected] void QSplashScreen::drawContents(QPainter *painter)

Отображает содержимое экрана загрузки с помощью painter. По умолчанию реализация рисует сообщение, переданное showMessage(). Переопределите эту функцию, если хотите выполнить собственное рисование на экране загрузки.

[override virtual protected] bool QSplashScreen::event(QEvent *e)

Переопределено из QWidget::event().

void QSplashScreen::finish(QWidget *mainWin)

Заставляет экран загрузки подождать, пока виджет mainWin не будет отображён, прежде чем вызывать close() для себя.

QString QSplashScreen::message() const

Возвращает сообщение, которое в данный момент отображается на экране загрузки.

Эта функция была введена в Qt 5.2.

См. также showMessage() и clearMessage().

[signal] void QSplashScreen::messageChanged(const QString &message)

Этот сигнал испускается, когда сообщение на экране загрузки изменяется. message — новое сообщение, и оно является пустой строкой, когда сообщение было удалено.

См. также showMessage() и clearMessage().

[override virtual protected] void QSplashScreen::mousePressEvent(QMouseEvent *)

Переопределено из QWidget::mousePressEvent().

const QPixmap QSplashScreen::pixmap() const

Возвращает пиксель, который используется в сплэш-скрине. На изображении отсутствует текст, нарисованный вызовами showMessage().

См. также setPixmap().

void QSplashScreen::repaint()

Переопределяет QWidget::repaint(). Отличается от стандартной функции repaint тем, что также вызывает QApplication::processEvents(), чтобы гарантировать отображение обновлений, даже при отсутствии цикла событий.

void QSplashScreen::setPixmap(const QPixmap &pixmap)

Устанавливает пиксель, который будет использоваться как изображение сплэш-скрина, в pixmap.

См. также pixmap().

[slot] void QSplashScreen::showMessage(const QString &message, int alignment = Qt::AlignLeft, const QColor &color = Qt::black)

Рисует текст message на сплэш-скрине цветом color и выравнивает текст в соответствии с флагами в alignment. Эта функция вызывает repaint(), чтобы убедиться, что сплэш-скрин перерисовывается немедленно. В результате сообщение постоянно обновляется с тем, что делает ваше приложение (например, загружает файлы).

См. также Qt::Alignment, clearMessage() и message().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qsplashscreen.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API