Spec-Zone.ru › Qt 5.9

Класс QSplashScreen

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

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

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

QSplashScreen(const QPixmap &pixmap = QPixmap(), Qt::WindowFlags f = Qt::WindowFlags())
QSplashScreen(QWidget *parent, const QPixmap &pixmap = QPixmap(), Qt::WindowFlags f = Qt::WindowFlags())
virtual ~QSplashScreen()
void finish(QWidget *mainWin)
QString message() const
const QPixmap pixmap() const
void repaint()
void setPixmap(const QPixmap &pixmap)
  • 214 открытых функций, унаследованных от QWidget
  • 32 открытых функций, унаследованных от 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)
virtual void mousePressEvent(QMouseEvent *)
  • 35 защищённых функций, унаследованных от QWidget
  • 9 защищённых функций, унаследованных от QObject
  • 1 защищённая функция, унаследованная от QPaintDevice

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

  • 59 свойств, унаследованных от QWidget
  • 1 свойства, унаследованные от QObject
  • 5 статических открытых членов, унаследованных от QWidget
  • 11 статических открытых членов, унаследованных от QObject
  • 1 защищённый слот, унаследованный от QWidget

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

Виджет 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 = Qt::WindowFlags())

Создаёт всплывающее окно, которое будет отображать pixmap.

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

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

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

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

[virtual] QSplashScreen::~QSplashScreen()

Деструктор.

[slot] void QSplashScreen::clearMessage()

Удаляет отображаемое на всплывающем окне сообщение.

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

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

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

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

Переопределено из QObject::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().

[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/qt-5.9/qsplashscreen.html

Spec-Zone.ru

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