Spec-Zone.ru › Qt 5.11

Класс QQuickWindow

Класс QQuickWindow предоставляет окно для отображения графической сцены QML. Подробнее...

Заголовок: #include <QQuickWindow>
qmake: QT += quick
С версии: Qt 5.0
Инициализируется: Window
Наследуется от: QWindow
Наследуется в:

QQuickView

  • Список всех членов, включая наследуемые
  • Устаревшие члены

Публичные типы

перечисление CreateTextureOption { TextureHasAlphaChannel, TextureHasMipmaps, TextureOwnsGLTexture, TextureCanUseAtlas, TextureIsOpaque }
флаги CreateTextureOptions
перечисление RenderStage { BeforeSynchronizingStage, AfterSynchronizingStage, BeforeRenderingStage, AfterRenderingStage, AfterSwapStage, NoStage }
перечисление SceneGraphError { ContextNotAvailable }
перечисление TextRenderType { QtTextRendering, NativeTextRendering }

Свойства

  • activeFocusItem : QQuickItem* const
  • цвет : QColor
  • contentItem : QQuickItem* const
  • 16 свойств, унаследованных от QWindow
  • 1 свойство, унаследованное от QObject

Публичные функции

QQuickWindow(QWindow *parent = nullptr)
virtual ~QQuickWindow() override
QQuickItem * activeFocusItem() const
bool clearBeforeRendering() const
QColor цвет() const
QQuickItem * contentItem() const
QSGImageNode * createImageNode() const
QSGNinePatchNode * createNinePatchNode() const
QSGRectangleNode * createRectangleNode() const
QSGTexture * createTextureFromId(uint id, const QSize &size, QQuickWindow::CreateTextureOptions options) const
QSGTexture * createTextureFromImage(const QImage &image, QQuickWindow::CreateTextureOptions options) const
QSGTexture * createTextureFromImage(const QImage &image) const
qreal effectiveDevicePixelRatio() const
QImage grabWindow()
QQmlIncubationController * incubationController() const
bool isPersistentOpenGLContext() const
bool isPersistentSceneGraph() const
bool isSceneGraphInitialized() const
QQuickItem * mouseGrabberItem() const
QOpenGLContext * openglContext() const
QOpenGLFramebufferObject * renderTarget() const
uint renderTargetId() const
QSize renderTargetSize() const
QSGRendererInterface * rendererInterface() const
void resetOpenGLState()
void scheduleRenderJob(QRunnable *job, QQuickWindow::RenderStage stage)
void setClearBeforeRendering(bool enabled)
void setColor(const QColor &color)
void setPersistentOpenGLContext(bool persistent)
void setPersistentSceneGraph(bool persistent)
void setRenderTarget(QOpenGLFramebufferObject *fbo)
void setRenderTarget(uint fboId, const QSize &size)

Переопределённые публичные функции

virtual QAccessibleInterface * accessibleRoot() const override
  • 85 публичных функций, унаследованных от QWindow
  • 34 публичных функций, унаследованных от QObject
  • 6 публичных функций, унаследованных от QSurface

Публичные слоты

void releaseResources()
void update()
  • 24 публичных слота, унаследованных от QWindow
  • 1 публичный слот, унаследованный от QObject

Сигналы

void activeFocusItemChanged()
void afterAnimating()
void afterRendering()
void afterSynchronizing()
void beforeRendering()
void beforeSynchronizing()
void closing(QQuickCloseEvent *close)
void colorChanged(const QColor &)
void frameSwapped()
void openglContextCreated(QOpenGLContext *context)
void sceneGraphAboutToStop()
void sceneGraphError(QQuickWindow::SceneGraphError error, const QString &message)
void sceneGraphInitialized()
void sceneGraphInvalidated()
  • 18 сигналов, унаследованных от QWindow
  • 2 сигнала, унаследованных от QObject

Статические публичные члены

bool hasDefaultAlphaBuffer()
QString sceneGraphBackend()
void setDefaultAlphaBuffer(bool useAlpha)
void setSceneGraphBackend(QSGRendererInterface::GraphicsApi api)
void setSceneGraphBackend(const QString &backend)
void setTextRenderType(QQuickWindow::TextRenderType renderType)
QQuickWindow::TextRenderType textRenderType()
  • 3 статических публичных члена, унаследованных от QWindow
  • 10 статических публичных членов, унаследованных от QObject

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

virtual bool event(QEvent *e) override
virtual void exposeEvent(QExposeEvent *) override
virtual void focusInEvent(QFocusEvent *ev) override
virtual void focusOutEvent(QFocusEvent *ev) override
virtual void hideEvent(QHideEvent *) override
virtual void keyPressEvent(QKeyEvent *e) override
virtual void keyReleaseEvent(QKeyEvent *e) override
virtual void mouseDoubleClickEvent(QMouseEvent *event) override
virtual void mouseMoveEvent(QMouseEvent *event) override
virtual void mousePressEvent(QMouseEvent *event) override
virtual void mouseReleaseEvent(QMouseEvent *event) override
virtual void resizeEvent(QResizeEvent *ev) override
virtual void showEvent(QShowEvent *) override
virtual void wheelEvent(QWheelEvent *event) override
  • 18 защищённых функций, унаследованных от QWindow
  • 9 защищённых функций, унаследованных от QObject

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

  • 1 публичная переменная, унаследованная от QWindow
  • 1 публичная переменная, унаследованная от QObject
  • 18 защищённых функций, унаследованных от QWindow
  • 9 защищённых функций, унаследованных от QObject
  • 2 защищённых переменных, унаследованных от QObject
  • 2 защищённых переменных, унаследованных от QSurface

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

Класс QQuickWindow предоставляет окно для отображения графической QML сцены.

QQuickWindow обеспечивает управление графической сценой, необходимой для взаимодействия с и отображения сцены QQuickItems.

У QQuickWindow всегда есть один невидимый корневой элемент. Для добавления элементов в это окно переместите элементы в корневой элемент или в существующий элемент сцены.

Для простого отображения сцены из файла QML см. QQuickView.

Отрисовка

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

Сигнал sceneGraphInitialized() генерируется в потоке рендеринга перед первым рендерингом QML сцены на экран. Если графический граф для рендеринга был высвобождён, сигнал будет сгенерирован снова перед рендерингом следующего кадра.

Интеграция с OpenGL

При использовании адаптации OpenGL по умолчанию можно интегрировать вызовы OpenGL непосредственно в QQuickWindow, используя тот же контекст OpenGL, что и Qt Quick Scene Graph. Это делается путём подключения к сигналу QQuickWindow::beforeRendering() или QQuickWindow::afterRendering().

Примечание: При использовании QQuickWindow::beforeRendering(), убедитесь, что вы отключили очистку перед рендерингом с помощью QQuickWindow::setClearBeforeRendering().

Экспонирование и видимость

Когда экземпляр QQuickWindow намеренно скрывается с помощью hide() или setVisible(false), он прекратит рендеринг, и его графический граф и контекст графики могут быть высвобождены. Сигнал sceneGraphInvalidated() будет сгенерирован, когда это произойдёт.

Предупреждение: Ключевое значение, что операции с графикой и взаимодействие с графическим графом происходят исключительно в потоке рендеринга, в основном во время фазы updatePaintNode().

Предупреждение: Поскольку сигналы, связанные с рендерингом, могут генерироваться из потока рендеринга, подключения должны осуществляться с помощью Qt::DirectConnection.

Управление ресурсами

QML будет пытаться кэшировать изображения и узлы графа сцены для повышения производительности, но в некоторых сценариях с низким объемом памяти может потребоваться агрессивно освобождать эти ресурсы. Для принудительной очистки определенных ресурсов можно использовать releaseResources(). Вызов releaseResources() может привести к удалению всего графа сцены, а в случае адаптации OpenGL — и связанного контекста. Сигнал sceneGraphInvalidated() будет выпущен, когда это произойдёт.

Примечание: Все классы с префиксом QSG должны использоваться исключительно в потоке отрисовки графа сцены. Дополнительную информацию см. в разделе Граф сцены и отрисовка.

Форматы контекста и поверхности

Хотя можно указать QSurfaceFormat для каждого QQuickWindow, вызвав член-функцию setFormat(), окна также можно создавать из QML, используя элементы Window и ApplicationWindow. В этом случае в создании экземпляра окна не участвует код C++, но приложения по-прежнему могут устанавливать определенные значения формата поверхности, например, запрашивать определённую версию или профиль OpenGL. Такие приложения могут вызвать статическую функцию QSurfaceFormat::setDefaultFormat() при запуске. Указанный формат будет использоваться для всех окон Quick, созданных после этого.

См. также Граф сцены — OpenGL в QML.

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

enum QQuickWindow::CreateTextureOptionflags QQuickWindow::CreateTextureOptions

Перечисления CreateTextureOption используются для настройки обертывания текстуры.

Постоянная Значение Описание
QQuickWindow::TextureHasAlphaChannel 0x0001 Текстура имеет альфа-канал и должна отрисовываться с использованием смешивания.
QQuickWindow::TextureHasMipmaps 0x0002 Текстура имеет mip-уровни и может быть отрисована с включённым mipmapping.
QQuickWindow::TextureOwnsGLTexture 0x0004 Объект текстуры владеет идентификатором текстуры и удалит OpenGL-текстуру при удалении объекта текстуры.
QQuickWindow::TextureCanUseAtlas 0x0008 Изображение может быть загружено в атлас текстур.
QQuickWindow::TextureIsOpaque 0x0010 Текстура вернёт false для QSGTexture::hasAlphaChannel() и не будет смешиваться. Этот флаг был добавлен в Qt 5.6.

Тип CreateTextureOptions является псевдонимом для QFlags<CreateTextureOption>. Он хранит результат побитового ИЛИ значений CreateTextureOption.

enum QQuickWindow::RenderStage

Постоянная Значение Описание
QQuickWindow::BeforeSynchronizingStage 0 Перед синхронизацией.
QQuickWindow::AfterSynchronizingStage 1 После синхронизации.
QQuickWindow::BeforeRenderingStage 2 Перед отрисовкой.
QQuickWindow::AfterRenderingStage 3 После отрисовки.
QQuickWindow::AfterSwapStage 4 После переключения кадра.
QQuickWindow::NoStage 5 Как можно скорее. Это значение было добавлено в Qt 5.6.

Это перечисление было введено или изменено в Qt 5.4.

См. также Граф сцены и отрисовка.

enum QQuickWindow::SceneGraphError

Это перечисление описывает ошибку в сигнале sceneGraphError().

Постоянная Значение Описание
QQuickWindow::ContextNotAvailable 1 Не удалось создать контекст графики. Как правило, это означает, что не найдено подходящее реализация OpenGL, например, потому что драйверы графики не установлены, и поэтому отсутствует поддержка OpenGL 2. На мобильных и встраиваемых устройствах, использующих OpenGL ES, такая ошибка, скорее всего, указывает на проблемы в интеграции с системой окон и, возможно, неверную конфигурацию Qt.

Это перечисление было введено или изменено в Qt 5.3.

enum QQuickWindow::TextRenderType

Это перечисление описывает тип отрисовки по умолчанию для элементов, похожих на текст, в Qt Quick (Text, TextInput и т. д.).

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

Постоянная Значение Описание
QQuickWindow::QtTextRendering 0 Использовать собственный алгоритм растрирования Qt.
QQuickWindow::NativeTextRendering 1 Использовать родной для операционной системы растризатор текста.

Это перечисление было введено или изменено в Qt 5.10.

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

activeFocusItem : QQuickItem* const

Это свойство содержит элемент, который в данный момент имеет активный фокус, или null в случае, если нет элемента с активным фокусом.

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

QQuickItem * activeFocusItem() const

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

void activeFocusItemChanged()

color : QColor

Это свойство содержит цвет, используемый для очистки OpenGL-контекста.

Установка цвета очистки не имеет эффекта, когда очистка отключена. По умолчанию цвет очистки — белый.

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

QColor color() const
void setColor(const QColor &color)

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

void colorChanged(const QColor &)

См. также setClearBeforeRendering() и setDefaultAlphaBuffer().

contentItem : QQuickItem* const

Это свойство содержит невидимый корневой элемент сцены.

QQuickWindow всегда имеет один невидимый корневой элемент, содержащий весь его контент. Для добавления элементов в это окно переместите элементы в родительский элемент contentItem или в существующий элемент в сцене.

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

QQuickItem * contentItem() const

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

QQuickWindow::QQuickWindow(QWindow *parent = nullptr)

Создаёт окно для отображения QML-сцены с родительским окном parent.

[override virtual] QQuickWindow::~QQuickWindow()

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

[override virtual] QAccessibleInterface *QQuickWindow::accessibleRoot() const

Возвращает интерфейс доступности для этого окна или 0, если такой интерфейс создать нельзя.

[signal] void QQuickWindow::afterAnimating()

Этот сигнал генерируется в потоке пользовательского интерфейса перед запросом потоку отрисовки выполнить синхронизацию графа сцены.

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

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

[signal] void QQuickWindow::afterRendering()

Этот сигнал генерируется после завершения отрисовки сцены, перед вызовом swapbuffers.

Этот сигнал можно использовать для рисования с помощью OpenGL непосредственно поверх QML-контента или для захвата изображения текущего буфера кадра.

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

Предупреждение: Этот сигнал генерируется из потока отрисовки графа сцены. Если вашей функции-обработчику необходимо завершить выполнение перед продолжением, вы должны убедиться, что подключение прямое (см. Qt::ConnectionType).

END_OF_DOCUMENT_MARKER

Предупреждение: Убедитесь, что обработчик сигнала для afterRendering() оставляет контекст OpenGL в том же состоянии, в котором он был при входе в обработчик сигнала. В противном случае сцена может не отображаться должным образом.

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

[signal] void QQuickWindow::afterSynchronizing()

Этот сигнал испускается после синхронизации графа сцены с состоянием QML.

Этот сигнал можно использовать для подготовки, необходимой после вызовов QQuickItem::updatePaintNode(), пока поток GUI всё ещё заблокирован.

Контекст графики, используемый для отрисовки графа сцены, будет привязан в этот момент.

Предупреждение: Этот сигнал испускается из потока отрисовки графа сцены. Если вашей функции-слоту необходимо завершиться до продолжения выполнения, необходимо убедиться, что подключение является прямым (см. Qt::ConnectionType).

Предупреждение: При использовании адаптации OpenGL убедитесь, что обработчик сигнала для afterSynchronizing оставляет контекст OpenGL в том же состоянии, в котором он был при входе в обработчик сигнала. В противном случае сцена может не отображаться должным образом.

Функция была добавлена в Qt 5.3.

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

[signal] void QQuickWindow::beforeRendering()

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

В сочетании с режимами очистки фона этот параметр можно использовать для отрисовки с помощью обычного OpenGL под содержимым QML.

Контекст OpenGL, используемый для отрисовки графа сцены, будет привязан в этот момент.

Предупреждение: Этот сигнал испускается из потока отрисовки графа сцены. Если вашей функции-слоту необходимо завершиться до продолжения выполнения, необходимо убедиться, что подключение является прямым (см. Qt::ConnectionType).

Предупреждение: Убедитесь, что обработчик сигнала для beforeRendering оставляет контекст OpenGL в том же состоянии, в котором он был при входе в обработчик сигнала. В противном случае сцена может не отображаться должным образом.

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

[signal] void QQuickWindow::beforeSynchronizing()

Этот сигнал испускается перед синхронизацией графа сцены с состоянием QML.

Этот сигнал можно использовать для выполнения необходимой подготовки перед вызовами QQuickItem::updatePaintNode().

Контекст OpenGL, используемый для отрисовки графа сцены, будет привязан в этот момент.

Предупреждение: Этот сигнал испускается из потока отрисовки графа сцены. Если вашей функции-слоту необходимо завершиться до продолжения выполнения, необходимо убедиться, что подключение является прямым (см. Qt::ConnectionType).

Предупреждение: Убедитесь, что обработчик сигнала для beforeSynchronizing оставляет контекст GL в том же состоянии, в котором он был при входе в обработчик сигнала. В противном случае сцена может не отображаться должным образом.

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

bool QQuickWindow::clearBeforeRendering() const

Возвращает значение, указывающее, выполняется ли очистка буфера цвета перед отрисовкой.

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

[signal] void QQuickWindow::closing(QQuickCloseEvent *close)

Этот сигнал испускается, когда окно получает событие close от системы окон.

Функция была добавлена в Qt 5.1.

QSGImageNode *QQuickWindow::createImageNode() const

Создаёт простой узел изображения. Если граф сцены не инициализирован, возвращается значение null.

Это кроссплатформенная альтернатива прямому созданию QSGSimpleTextureNode.

Функция была добавлена в Qt 5.8.

См. также QSGImageNode.

QSGNinePatchNode *QQuickWindow::createNinePatchNode() const

Создаёт узел девяти частей. Если граф сцены не инициализирован, возвращается значение null.

Функция была добавлена в Qt 5.8.

QSGRectangleNode *QQuickWindow::createRectangleNode() const

Создаёт простой прямоугольный узел. Если граф сцены не инициализирован, возвращается значение null.

Это кроссплатформенная альтернатива прямому созданию QSGSimpleRectNode.

Функция была добавлена в Qt 5.8.

См. также QSGRectangleNode.

QSGTexture *QQuickWindow::createTextureFromId(uint id, const QSize &size, QQuickWindow::CreateTextureOptions options) const

Создаёт новый объект QSGTexture из существующего идентификатора текстуры OpenGL id и размера size.

Вызывающий функцию отвечает за удаление возвращённой текстуры.

Возвращённая текстура будет использовать GL_TEXTURE_2D в качестве целевого параметра текстуры и предполагает, что внутренний формат GL_RGBA. Переопределите QSGTexture, чтобы создать текстуры с другими параметрами.

Используйте options для настройки атрибутов текстуры. Параметр TextureUsesAtlas игнорируется.

Предупреждение: Эта функция вернёт null, если граф сцены ещё не инициализирован или OpenGL не используется.

Примечание: Эта функция имеет эффект только при использовании адаптации графа сцены OpenGL по умолчанию.

См. также sceneGraphInitialized() и QSGTexture.

QSGTexture *QQuickWindow::createTextureFromImage(const QImage &image, QQuickWindow::CreateTextureOptions options) const

Создаёт новый QSGTexture из предоставленного изображения image. Если изображение имеет альфа-канал, соответствующая текстура будет иметь альфа-канал.

Вызывающий функцию отвечает за удаление возвращённой текстуры. Например, при использовании адаптации OpenGL фактическая текстура OpenGL будет удалена при удалении объекта текстуры.

Если options содержит TextureCanUseAtlas, движок может поместить изображение в атлас текстур. Текстуры в атласе должны использовать QSGTexture::normalizedTextureSubRect() для своей геометрии и не будут поддерживать QSGTexture::Repeat. Другие значения из CreateTextureOption игнорируются.

Если options содержит TextureIsOpaque, движок создаст текстуру RGB, которая возвращает false для QSGTexture::hasAlphaChannel(). Непрозрачные текстуры в большинстве случаев быстрее отрисовываются. Если этот флаг не установлен, текстура будет иметь альфа-канал, основанный на формате изображения.

Если options содержит TextureHasMipmaps, движок создаст текстуру, которая может использовать фильтрацию MIP-уровней. Текстуры с MIP-уровнями не могут находиться в атласе.

При использовании адаптации OpenGL возвращённая текстура будет использовать GL_TEXTURE_2D в качестве целевого параметра текстуры и GL_RGBA в качестве внутреннего формата. Переопределите QSGTexture, чтобы создать текстуры с другими параметрами.

Предупреждение: Эта функция вернёт 0, если граф сцены ещё не инициализирован.

Предупреждение: Возвращаемая текстура не управляется памятью графа сцены и должна быть явно удалена вызывающей стороной в потоке отрисовки. Это достигается удалением текстуры из деструктора QSGNode или с помощью deleteLater() в случае, когда текстура уже имеет родство с потоком отрисовки.

Функцию можно вызывать из любого потока.

См. также sceneGraphInitialized() и QSGTexture.

QSGTexture *QQuickWindow::createTextureFromImage(const QImage &image) const

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

qreal QQuickWindow::effectiveDevicePixelRatio() const

Возвращает коэффициент пикселей устройства для этого окна.

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

См. также QWindow::devicePixelRatio().

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

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

[override virtual protected] void QQuickWindow::exposeEvent(QExposeEvent *)

Переопределено из QWindow::exposeEvent().

[override virtual protected] void QQuickWindow::focusInEvent(QFocusEvent *ev)

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

[override virtual protected] void QQuickWindow::focusOutEvent(QFocusEvent *ev)

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

[signal] void QQuickWindow::frameSwapped()

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

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

QImage QQuickWindow::grabWindow()

Захватывает содержимое окна и возвращает его в виде изображения.

Можно вызвать функцию grabWindow(), когда окно невидимо. Для этого необходимо, чтобы окно было создано, имело действительный размер и ни один другой экземпляр QQuickWindow не рендерился в том же процессе.

Предупреждение: Вызов этой функции может привести к проблемам с производительностью.

Предупреждение: Эта функция может вызываться только из потока GUI.

[static] bool QQuickWindow::hasDefaultAlphaBuffer()

Возвращает значение, указывающее, следует ли использовать альфа-прозрачность для вновь созданных окон.

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

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

[override virtual protected] void QQuickWindow::hideEvent(QHideEvent *)

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

QQmlIncubationController *QQuickWindow::incubationController() const

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

Контроллер принадлежит окну и будет удалён при удалении окна.

bool QQuickWindow::isPersistentOpenGLContext() const

Возвращает значение, указывающее, может ли контекст OpenGL быть освобождён во время жизненного цикла QQuickWindow.

Примечание: Это подсказка. Время и способ этого происходит зависят от реализации. Она также действует только при использовании стандартной адаптации OpenGL графа сцены.

bool QQuickWindow::isPersistentSceneGraph() const

Возвращает значение, указывающее, могут ли узлы и ресурсы графа сцены быть освобождены во время жизненного цикла этого QQuickWindow.

Примечание: Это подсказка. Время и способ этого происходит зависят от реализации.

bool QQuickWindow::isSceneGraphInitialized() const

Возвращает true, если граф сцены был инициализирован; в противном случае возвращает false.

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

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

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

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

[override virtual protected] void QQuickWindow::mouseDoubleClickEvent(QMouseEvent *event)

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

QQuickItem *QQuickWindow::mouseGrabberItem() const

Возвращает элемент, который в настоящее время захватывает мышь.

[override virtual protected] void QQuickWindow::mouseMoveEvent(QMouseEvent *event)

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

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

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

[override virtual protected] void QQuickWindow::mouseReleaseEvent(QMouseEvent *event)

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

QOpenGLContext *QQuickWindow::openglContext() const

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

Если граф сцены не готов или граф сцены не использует OpenGL, эта функция вернёт null.

Примечание: Если используется адаптация графа сцены, отличная от OpenGL, эта функция вернёт nullptr.

См. также sceneGraphInitialized() и sceneGraphInvalidated().

[signal] void QQuickWindow::openglContextCreated(QOpenGLContext *context)

Этот сигнал испускается в потоке GUI, когда контекст OpenGL context для данного окна создан, но ещё не установлен в качестве текущего.

В некоторых реализациях один и тот же контекст OpenGL может быть общим для нескольких экземпляров QQuickWindow. В этом случае сигнал openglContextCreated() будет испущен только для первого окна, когда контекст OpenGL фактически создан.

QQuickWindow::openglContext() всё ещё вернёт 0 для этого окна до тех пор, пока не будет испущен QQuickWindow::sceneGraphInitialize().

Примечание: Этот сигнал будет испущен только при использовании стандартной адаптации OpenGL графа сцены.

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

[slot] void QQuickWindow::releaseResources()

Эта функция пытается освободить избыточные ресурсы, которые в настоящее время удерживаются QML сценой.

Вызов этой функции может привести к освобождению графа сцены и контекста OpenGL, используемого для рендеринга, чтобы освободить видеопамять. Если это произойдёт, будет вызван сигнал sceneGraphInvalidated(), позволяющий пользователям очистить свои собственные графические ресурсы. Функции setPersistentOpenGLContext() и setPersistentSceneGraph() могут быть использованы для предотвращения этого, если обработка очистки невозможна в приложении, но с затратами на повышенное использование памяти.

См. также sceneGraphInvalidated(), setPersistentOpenGLContext() и setPersistentSceneGraph().

QOpenGLFramebufferObject *QQuickWindow::renderTarget() const

Возвращает целевой объект рендеринга для данного окна.

По умолчанию рендеринг выполняется на поверхности окна, в этом случае целевой объект рендеринга равен 0.

Примечание: Эта функция вернёт nullptr, когда не используется адаптация OpenGL графа сцены.

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

uint QQuickWindow::renderTargetId() const

Возвращает идентификатор FBO целевого объекта рендеринга при его установке; в противном случае возвращает 0.

QSize QQuickWindow::renderTargetSize() const

Возвращает размер текущего целевого объекта рендеринга; в противном случае возвращает пустой размер.

QSGRendererInterface *QQuickWindow::rendererInterface() const

Возвращает текущий интерфейс рендерера. Значение всегда действительное и никогда не равно null.

Примечание: Эта функция может быть вызвана в любое время после создания QQuickWindow, даже когда isSceneGraphInitialized() всё ещё равно false. Однако некоторые функции интерфейса рендерера, в частности QSGRendererInterface::getResource(), будут работоспособны только после запуска графа сцены. С другой стороны, запросы к бэкенду, такие как QSGRendererInterface::graphicsApi() или QSGRendererInterface::shaderType(), всегда будут работоспособны.

Примечание: Владелец возвращаемого указателя остаётся за Qt. Возвращаемый экземпляр может быть или не быть общим для различных экземпляров QQuickWindow, в зависимости от используемого бэкенда графа сцены. Таким образом, приложения должны запрашивать объект интерфейса для каждого QQuickWindow, а не повторно использовать уже запрошенный указатель.

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

См. также QSGRenderNode и QSGRendererInterface.

void QQuickWindow::resetOpenGLState()

Вызовите эту функцию для сброса контекста OpenGL в его исходное состояние.

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

Эта функция не изменяет состояние в фиксированной функциональной части конвейера.

Эта функция не очищает буферы цвета, глубины и трафарета. Используйте QQuickWindow::setClearBeforeRendering для управления очисткой буфера цвета. Буферы глубины и трафарета могут быть перезаписаны рендерером графа сцены. Очищайте их вручную по мере необходимости.

Примечание: Эта функция действует только при использовании стандартной адаптации OpenGL графа сцены.

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

END_OF_DOCUMENT_MARKER

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

[override virtual protected] void QQuickWindow::resizeEvent(QResizeEvent *ev)

Переопределено из QWindow::resizeEvent().

[signal] void QQuickWindow::sceneGraphAboutToStop()

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

Приложения могут использовать этот сигнал для освобождения ресурсов, но должны быть готовы к их быстрой повторной инициализации. Граф сцены и контекст графики в этот момент не освобождаются.

Предупреждение: Этот сигнал излучается из потока отрисовки графа сцены. Если ваша функция-слот должна завершиться до продолжения выполнения, необходимо убедиться, что подключение является прямым (см. Qt::ConnectionType).

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

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

См. также sceneGraphInvalidated() и resetOpenGLState().

[static] QString QQuickWindow::sceneGraphBackend()

Возвращает запрошенный бэкенд Qt Quick графа сцены.

Примечание: Возвращаемое значение этой функции может быть устаревшим последующими вызовами setSceneGraphBackend() до создания первого объекта QQuickWindow в приложении.

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

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

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

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

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

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

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

[signal] void QQuickWindow::sceneGraphInitialized()

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

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

[signal] void QQuickWindow::sceneGraphInvalidated()

Этот сигнал излучается, когда граф сцены был сделан недействительным.

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

В случае стандартной адаптации OpenGL контекст этого окна будет привязан при вызове этой функции. Исключением является случай, когда родной OpenGL был уничтожен вне контроля Qt, например, через EGL_CONTEXT_LOST.

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

void QQuickWindow::scheduleRenderJob(QRunnable *job, QQuickWindow::RenderStage stage)

Планирует выполнение job, когда отрисовка этого окна достигнет заданной стадии stage.

Это удобный способ для выполнения задач "один раз" в эквивалентных сигналах QQuickWindow.

Окно принимает на себя владение job и удалит его после завершения работы.

Если отрисовка завершена до того, как job успевает запуститься, работа выполнится и будет удалена в ходе очистки графа сцены. Если окно никогда не отображается и отрисовка не происходит до уничтожения QQuickWindow, все ожидающие задачи будут удалены без вызова метода run().

Если отрисовка происходит в другом потоке, то работа будет выполнена в потоке отрисовки.

Если stage равен NoStage, job будет выполнен в ближайшей возможности, когда поток отрисовки не занят отрисовкой кадра. Если доступен контекст OpenGL или окно не отображается в момент публикации или обработки задачи, оно удаляется без выполнения метода run(). Если используется не многопоточный рендерер, метод run() задачи выполняется синхронно. Контекст OpenGL изменяется на контекст рендерера перед выполнением задачи NoStage.

Примечание: Эта функция не запускает отрисовку; задачи, нацеленные на любую другую стадию, чем NoStage, будут храниться для выполнения до запуска отрисовки. Чтобы заставить задачу выполнить раньше, вызовите QQuickWindow::update();

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

См. также beforeRendering(), afterRendering(), beforeSynchronizing(), afterSynchronizing(), frameSwapped(), и sceneGraphInvalidated().

void QQuickWindow::setClearBeforeRendering(bool enabled)

Устанавливает, будет ли очищаться буфер цвета перед началом отрисовки графа сцены QML, в значение enabled.

Отключив очистку буфера цвета, можно отрисовывать содержимое OpengGL под графом сцены.

Буфер цвета очищается по умолчанию.

См. также clearBeforeRendering() и beforeRendering().

[static] void QQuickWindow::setDefaultAlphaBuffer(bool useAlpha)

useAlpha указывает, использовать ли альфа-прозрачность для вновь созданных окон.

Для любого приложения, которое ожидает создание полупрозрачных окон, необходимо установить это значение в true перед созданием первого QQuickWindow. Значение по умолчанию - false.

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

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

void QQuickWindow::setPersistentOpenGLContext(bool persistent)

Устанавливает, должен ли контекст OpenGL сохраняться и не может быть освобожден до удаления последнего окна, в значение persistent. Значение по умолчанию - true.

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

Сигнал QOpenGLContext::aboutToBeDestroyed() излучается из QQuickWindow::openglContext() при освобождении контекста OpenGL. Сигнал QQuickWindow::sceneGraphInitialized() излучается при создании нового контекста OpenGL для этого окна. Используйте Qt::DirectConnection для этих сигналов, чтобы получать уведомления.

Контекст OpenGL по-прежнему освобождается при удалении последнего QQuickWindow.

Примечание: Это имеет эффект только при использовании стандартной адаптации графа сцены OpenGL.

См. также isPersistentOpenGLContext(), setPersistentSceneGraph(), QOpenGLContext::aboutToBeDestroyed(), и sceneGraphInitialized().

void QQuickWindow::setPersistentSceneGraph(bool persistent)

Устанавливает, могут ли узлы и ресурсы графа сцены быть освобождены в значение persistent. Значение по умолчанию - true.

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

Сигнал QQuickWindow::sceneGraphInvalidated() излучается при очистке. Сигнал QQuickWindow::sceneGraphInitialized() излучается при пересоздании графа сцены для этого окна. Используйте Qt::DirectConnection для этих сигналов, чтобы получать уведомления.

Узлы и ресурсы графа сцены по-прежнему освобождаются при удалении последнего QQuickWindow.

См. также isPersistentSceneGraph(), setPersistentOpenGLContext(), sceneGraphInvalidated(), и sceneGraphInitialized().

void QQuickWindow::setRenderTarget(QOpenGLFramebufferObject *fbo)

Устанавливает целевой объект отрисовки для этого окна в fbo.

Указанный объект fbo должен быть создан в контексте окна или в контексте, который совместно использует с ним.

Примечание: Эта функция имеет эффект только при использовании стандартной адаптации OpenGL графа сцены.

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

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

void QQuickWindow::setRenderTarget(uint fboId, const QSize &size)

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

Устанавливает целевой объект отрисовки для этого окна в FBO с fboId и size.

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

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

Примечание: Эта функция действует только при использовании адаптации сцены OpenGL по умолчанию.

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

[static] void QQuickWindow::setSceneGraphBackend(QSGRendererInterface::GraphicsApi api)

Запрашивает бэкенд сцены Qt Quick для указанного графического api. Бэкенды могут быть встроенными или установлены в виде загружаемых динамически плагинов.

Примечание: Вызов функции должен произойти до создания первого QQuickWindow в приложении. Он не может быть изменён после этого.

Если выбранный бэкенд недействителен или возникает ошибка, используется бэкенд по умолчанию (OpenGL или программный, в зависимости от конфигурации Qt).

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

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

[static] void QQuickWindow::setSceneGraphBackend(const QString &backend)

Запрашивает указанный бэкенд сцены Qt Quick backend. Бэкенды могут быть встроенными или установлены в виде загружаемых динамически плагинов.

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

Примечание: Вызов функции должен произойти до создания первого QQuickWindow в приложении. Он не может быть изменён после этого.

Если backend недействителен или возникает ошибка, используется бэкенд по умолчанию (OpenGL или программный, в зависимости от конфигурации Qt).

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

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

[static] void QQuickWindow::setTextRenderType(QQuickWindow::TextRenderType renderType)

Устанавливает тип отрисовки элементов, подобных тексту, в Qt Quick на renderType.

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

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

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

[override virtual protected] void QQuickWindow::showEvent(QShowEvent *)

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

[static] QQuickWindow::TextRenderType QQuickWindow::textRenderType()

Возвращает тип отрисовки элементов, подобных тексту, в Qt Quick. По умолчанию используется QQuickWindow::QtTextRendering.

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

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

[slot] void QQuickWindow::update()

Планирует отрисовку другого кадра окна.

Вызов QQuickWindow::update() отличается от QQuickItem::update() тем, что всегда вызывает перерисовку, независимо от изменений в базовой структуре сцены.

[override virtual protected] void QQuickWindow::wheelEvent(QWheelEvent *event)

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

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

Spec-Zone.ru

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