Spec-Zone.ru › Qt 5.6

Класс QQuickWidget

Класс QQuickWidget предоставляет виджет для отображения пользовательского интерфейса Qt Quick. Подробнее...

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

Открытые типы

перечисление ResizeMode { SizeViewToRootObject, SizeRootObjectToView }
перечисление Status { Null, Ready, Loading, Error }

Свойства

  • resizeMode : ResizeMode
  • source : QUrl
  • status : const Status
  • 58 свойств унаследовано от QWidget
  • 1 свойство унаследовано от QObject

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

QQuickWidget(QWidget *parent = Q_NULLPTR)
QQuickWidget(QQmlEngine *engine, QWidget *parent)
QQuickWidget(const QUrl &source, QWidget *parent = Q_NULLPTR)
virtual ~QQuickWidget()
QQmlEngine * engine() const
QList<QQmlError> errors() const
QSurfaceFormat format() const
QImage grabFramebuffer() const
QSize initialSize() const
QQuickWindow * quickWindow() const
ResizeMode resizeMode() const
QQmlContext * rootContext() const
QQuickItem * rootObject() const
void setClearColor(const QColor &color)
void setFormat(const QSurfaceFormat &format)
void setResizeMode(ResizeMode)
QUrl source() const
Status status() const
  • 211 открытых функций унаследовано от QWidget
  • 31 открытых функций унаследовано от QObject
  • 14 открытых функций унаследовано от QPaintDevice

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

void setSource(const QUrl &url)
  • 19 открытых слотов унаследовано от QWidget
  • 1 открытый слот унаследовано от QObject

Сигналы

void sceneGraphError(QQuickWindow::SceneGraphError error, const QString &message)
void statusChanged(QQuickWidget::Status status)
  • 3 сигнала унаследовано от QWidget
  • 2 сигнала унаследовано от QObject

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

virtual void dragEnterEvent(QDragEnterEvent *e)
virtual void dragLeaveEvent(QDragLeaveEvent *e)
virtual void dragMoveEvent(QDragMoveEvent *e)
virtual void dropEvent(QDropEvent *e)
virtual bool event(QEvent *e)
virtual void focusInEvent(QFocusEvent *event)
virtual void focusOutEvent(QFocusEvent *event)
virtual void hideEvent(QHideEvent *)
virtual void keyPressEvent(QKeyEvent *e)
virtual void keyReleaseEvent(QKeyEvent *e)
virtual void mouseDoubleClickEvent(QMouseEvent *e)
virtual void mouseMoveEvent(QMouseEvent *e)
virtual void mousePressEvent(QMouseEvent *e)
virtual void mouseReleaseEvent(QMouseEvent *e)
virtual void showEvent(QShowEvent *)
virtual void wheelEvent(QWheelEvent *e)
  • 35 защищённых функций унаследовано от QWidget
  • 9 защищённых функций унаследовано от QObject
  • 1 защищённая функция унаследовано от QPaintDevice

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

  • 5 статических открытых членов унаследовано от QWidget
  • 11 статических открытых членов унаследовано от QObject
  • 35 защищённых функций унаследовано от QWidget
  • 9 защищённых функций унаследовано от QObject
  • 1 защищённая функция унаследовано от QPaintDevice
  • 1 защищённый слот унаследовано от QWidget

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

Класс QQuickWidget предоставляет виджет для отображения пользовательского интерфейса Qt Quick.

Это удобная обёртка для QQuickWindow, которая автоматически загрузит и отобразит сцену QML, когда ей будет предоставлен URL основного исходного файла. В качестве альтернативы вы можете создать свои собственные объекты с помощью QQmlComponent и разместить их в QQuickWidget, настроенном вручную.

Типичное использование:

QQuickWidget *view = new QQuickWidget;
view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));
view->show();

Чтобы получать ошибки, связанные с загрузкой и выполнением QML с помощью QQuickWidget, можно подключиться к сигналу statusChanged() и отслеживать возникновение QQuickWidget::Error. Ошибки доступны через QQuickWidget::errors().

QQuickWidget также управляет размером представления и корневого объекта. По умолчанию свойство resizeMode имеет значение SizeViewToRootObject, что позволит загрузить компонент и изменить его размер на размер представления. В качестве альтернативы, свойство resizeMode можно установить в SizeRootObjectToView, что приведет к изменению размера представления на размер корневого объекта.

Примечание: QQuickWidget — это альтернатива использованию QQuickView и QWidget::createWindowContainer(). Ограничения на порядок стекирования не применяются, делая QQuickWidget более гибкой альтернативой, которая ведет себя как обычное виджет. Это происходит за счет производительности. В отличие от QQuickWindow и QQuickView, QQuickWidget включает отрисовку в объекты буфера кадра OpenGL. Это неизбежно приведет к небольшому снижению производительности.

Примечание: Использование QQuickWidget отключает поток отрисовки в отдельном потоке на всех платформах. Это означает, что некоторые преимущества потоковой отрисовки, например, классы Animator и анимации, управляемые vsync, будут недоступны.

Примечание: Избегайте вызова winId() для QQuickWidget. Эта функция вызывает создание родного окна, что приводит к снижению производительности и, возможно, проблемам с отрисовкой. Цель QQuickWidget заключается в отрисовке быстрых сцен без отдельного родного окна, поэтому создание родного виджета следует избегать.

Ограничения

Размещение других виджетов под QQuickWidget и установка его прозрачности не приведет к ожидаемому результату: виджеты, расположенные под ним, не будут видны. Это связано с тем, что QQuickWidget фактически рисуется перед всеми другими обычными, не-OpenGL виджетами, и поэтому решения с прозрачностью невозможны. Другие типы макетов, такие как размещение виджетов поверх QQuickWidget, будут работать как ожидается.

В случае крайней необходимости это ограничение можно обойти, установив атрибут Qt::WA_AlwaysStackOnTop для QQuickWidget. Однако помните, что это нарушает порядок стекирования. Например, не удастся разместить другие виджеты поверх QQuickWidget, поэтому следует использовать его только в ситуациях, когда требуется полупрозрачный QQuickWidget с видимыми другими виджетами под ним.

Это ограничение применяется только в случае наличия других виджетов под QQuickWidget в одном окне. Установка полупрозрачности окна с отображением других приложений и рабочего стола на фоне выполняется традиционным способом: установите Qt::WA_TranslucentBackground для верхнего уровня окна, запросите альфа-канал и измените цвет очистки Qt Quick Scenegraph на Qt::transparent с помощью setClearColor().

См. также Размещение атрибутов типов C++ в QML, Пример Qt Quick Widgets и QQuickView.

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

enum QQuickWidget::ResizeMode

Этот перечисление определяет способ изменения размера представления.

Константа Значение Описание
QQuickWidget::SizeViewToRootObject 0 Представление изменяет размер вместе с корневым элементом в QML.
QQuickWidget::SizeRootObjectToView 1 Представление автоматически изменяет размер корневого элемента на размер представления.

enum QQuickWidget::Status

Указывает состояние загрузки QQuickWidget.

Константа Значение Описание
QQuickWidget::Null 0 У этого QQuickWidget нет заданного источника.
QQuickWidget::Ready 1 Этот QQuickWidget загрузил и создал компонент QML.
QQuickWidget::Loading 2 Этот QQuickWidget загружает данные из сети.
QQuickWidget::Error 3 Произошла одна или несколько ошибок. Используйте errors(), чтобы получить список ошибок.

Документация по свойствам

resizeMode : ResizeMode

Определяет, следует ли изменять размер содержимого окна.

Если это свойство установлено в SizeViewToRootObject (по умолчанию), представление изменяет размер до размера корневого элемента в QML.

Если это свойство установлено в SizeRootObjectToView, представление автоматически изменит размер корневого элемента до размера представления.

Независимо от этого свойства, sizeHint представления — это начальный размер корневого элемента. Однако обратите внимание, что поскольку QML может загружаться динамически, этот размер может измениться.

Функции доступа:

ResizeMode resizeMode() const
void setResizeMode(ResizeMode)

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

source : QUrl

Это свойство содержит URL-адрес источника компонента QML.

Убедитесь, что предоставленный URL-адрес является полным и корректным, в частности, используйте QUrl::fromLocalFile(), когда загружаете файл из локальной файловой системы.

Примечание: Установка URL-адреса источника приведет к инициализации компонента QML, даже если URL-адрес не изменился по сравнению со значением текущего значения.

Функции доступа:

QUrl source() const
void setSource(const QUrl &url)

status : const Status

Текущее состояние компонента .

Функции доступа:

Status status() const

Сигнал уведомления:

void statusChanged(QQuickWidget::Status status)

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

QQuickWidget::QQuickWidget(QWidget *parent = Q_NULLPTR)

Конструктор QQuickWidget с заданным parent. По умолчанию значение parent равно 0.

QQuickWidget::QQuickWidget(QQmlEngine *engine, QWidget *parent)

Конструктор QQuickWidget с заданным QML engine и parent.

Примечание: В этом случае QQuickWidget не владеет объектом engine; ответственность за уничтожение объекта лежит на вызывающей стороне. Если engine будет удален до представления, status() вернет QQuickWidget::Error.

См. также Status, status() и errors().

QQuickWidget::QQuickWidget(const QUrl &source, QWidget *parent = Q_NULLPTR)

Конструктор QQuickWidget с заданным QML source и parent. По умолчанию значение parent равно 0.

[virtual] QQuickWidget::~QQuickWidget()

Уничтожает QQuickWidget.

[virtual protected] void QQuickWidget::dragEnterEvent(QDragEnterEvent *e)

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

[virtual protected] void QQuickWidget::dragLeaveEvent(QDragLeaveEvent *e)

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

[virtual protected] void QQuickWidget::dragMoveEvent(QDragMoveEvent *e)

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

[virtual protected] void QQuickWidget::dropEvent(QDropEvent *e)

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

QQmlEngine *QQuickWidget::engine() const

Возвращает указатель на QQmlEngine, используемый для создания QML-компонентов.

QList<QQmlError> QQuickWidget::errors() const

Возвращает список ошибок, произошедших во время последней компиляции или операции создания. Если статус не Error, возвращается пустой список.

См. также status.

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

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

[virtual protected] void QQuickWidget::focusInEvent(QFocusEvent *event)

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

[virtual protected] void QQuickWidget::focusOutEvent(QFocusEvent *event)

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

QSurfaceFormat QQuickWidget::format() const

Возвращает фактический формат поверхности.

Если виджет еще не отображен, возвращается запрошенный формат.

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

QImage QQuickWidget::grabFramebuffer() const

Отображает кадр и считывает его в изображение.

Примечание: Это потенциально дорогостоящая операция.

[virtual protected] void QQuickWidget::hideEvent(QHideEvent *)

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

QSize QQuickWidget::initialSize() const

Возвращает начальный размер корневого объекта.

Если resizeMode равен SizeRootObjectToView, корневой объект будет изменён на размер области просмотра. Эта функция возвращает размер корневого объекта до изменения размера.

[virtual protected] void QQuickWidget::keyPressEvent(QKeyEvent *e)

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

[virtual protected] void QQuickWidget::keyReleaseEvent(QKeyEvent *e)

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

[virtual protected] void QQuickWidget::mouseDoubleClickEvent(QMouseEvent *e)

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

[virtual protected] void QQuickWidget::mouseMoveEvent(QMouseEvent *e)

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

[virtual protected] void QQuickWidget::mousePressEvent(QMouseEvent *e)

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

[virtual protected] void QQuickWidget::mouseReleaseEvent(QMouseEvent *e)

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

QQuickWindow *QQuickWidget::quickWindow() const

Возвращает автономное окно QQuickWindow, используемое этим виджетом для управления рендерингом Qt Quick. Это полезно, если вы хотите использовать API QQuickWindow, которые в данный момент не предоставляются QQuickWidget, например, подсоединение к сигналу QQuickWindow::beforeRendering() для отрисовки нативного OpenGL-содержимого под собственным рендерингом Qt Quick.

Предупреждение: Используйте возвращаемое значение этой функции с осторожностью. В частности, никогда не пытайтесь отобразить QQuickWindow и будьте очень осторожны при использовании других API, специфичных для QWindow.

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

QQmlContext *QQuickWidget::rootContext() const

Эта функция возвращает корень иерархии контекстов. Каждый QML-компонент создается в QQmlContext. QQmlContext необходимы для передачи данных QML-компонентам. В QML контексты организованы иерархически, и эта иерархия управляется QQmlEngine.

QQuickItem *QQuickWidget::rootObject() const

Возвращает корневой элемент области просмотра.

[signal] void QQuickWidget::sceneGraphError(QQuickWindow::SceneGraphError error, const QString &message)

Этот сигнал излучается при возникновении ошибки во время инициализации графа сцены.

Приложения должны подключаться к этому сигналу, если они хотят обрабатывать ошибки, такие как сбои создания контекста OpenGL, своим способом. Если слот не подключен, поведение будет отличаться: Quick выведет сообщение или покажет диалоговое окно и завершит приложение.

Этот сигнал будет излучаться из потока GUI.

См. также QQuickWindow::sceneGraphError().

void QQuickWidget::setClearColor(const QColor &color)

Устанавливает цвет очистки color. По умолчанию это непрозрачный цвет.

Для получения полупрозрачного QQuickWidget вызовите эту функцию со значением color, установленным в Qt::transparent, установите атрибут виджета Qt::WA_TranslucentBackground для окна верхнего уровня и запросите альфа-канал с помощью setFormat().

См. также QQuickWindow::setColor().

void QQuickWidget::setFormat(const QSurfaceFormat &format)

Устанавливает формат поверхности format для контекста и автономной поверхности, используемых этим виджетом.

Вызовите эту функцию, когда необходимо запросить контекст для определенной версии или профиля OpenGL. Размеры буферов глубины, трафарета и альфа-канала обрабатываются автоматически, и нет необходимости явно их запрашивать.

См. также QWindow::setFormat(), QWindow::format() и format().

[slot] void QQuickWidget::setSource(const QUrl &url)

Устанавливает источник в url, загружает QML-компонент и создает его экземпляр.

Убедитесь, что предоставленный URL-адрес полный и правильный, особенно используйте QUrl::fromLocalFile() при загрузке файла из локальной файловой системы.

Многократный вызов этого метода с одинаковым URL-адресом приведет к повторному созданию экземпляра QML-компонента.

Примечание: Функция-сеттер для свойства source.

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

[virtual protected] void QQuickWidget::showEvent(QShowEvent *)

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

QUrl QQuickWidget::source() const

Возвращает URL-адрес источника, если он задан.

Примечание: Функция-геттер для свойства source.

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

[signal] void QQuickWidget::statusChanged(QQuickWidget::Status status)

Этот сигнал излучается при изменении текущего статуса компонента status.

Примечание: Сигнал-уведомление для свойства status.

[virtual protected] void QQuickWidget::wheelEvent(QWheelEvent *e)

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

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

Spec-Zone.ru

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