Spec-Zone.ru › Qt 5.6

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

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

virtual void drawContents(QPainter *painter)

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

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

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

  • 58 свойств, унаследованных от 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())

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

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

[virtual] QSplashScreen::~QSplashScreen()

Деструктор.

[slot] void QSplashScreen::clearMessage()

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

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

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

Отрисовывает содержимое всплывающего окна с помощью 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(). Отличается от стандартной функции перерисовки тем, что также вызывает QApplication::flush(), чтобы гарантировать отображение обновлений даже при отсутствии цикла событий.

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.

Чтобы гарантировать немедленную перерисовку заставки, можно вызвать QCoreApplication's processEvents() после вызова showMessage(). Обычно это нужно для того, чтобы сообщение всегда соответствовало текущему состоянию вашей программы (например, загрузке файлов).

См. также 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.6/qsplashscreen.html

Spec-Zone.ru

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