Spec-Zone.ru › Qt 5.12

Класс 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
  • 31 открытых функций, унаследованных от 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

Статические открытые члены

const QMetaObject staticMetaObject
  • 5 статических открытых членов, унаследованных от QWidget
  • 9 статических открытых членов, унаследованных от 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 защищенный слот, унаследованный от 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 = ...)

Создаёт всплывающее окно, которое будет отображать 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 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/qt-5.12/qsplashscreen.html

Spec-Zone.ru

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