Spec-Zone.ru › Qt 5.12

Класс 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 color() 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
  • 82 общедоступные функции унаследованы от QWindow
  • 31 общедоступные функции унаследованы от 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)
const QMetaObject staticMetaObject
QQuickWindow::TextRenderType textRenderType()
  • 1 статический публичный член унаследованный от QWindow
  • 9 статических публичных членов унаследованных от 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

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

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

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

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

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

Отрисовка

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

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

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

При использовании адаптации OpenGL по умолчанию, возможно напрямую интегрировать вызовы OpenGL в QQuickWindow с использованием того же контекста OpenGL, что и в Qt Quick графической сцене. Это делается путём подключения к сигналу 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()

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

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

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

[signal] void QQuickWindow::afterRendering()

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

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

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

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

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

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

[signal] void QQuickWindow::afterSynchronizing()

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

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

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

END_OF_DOCUMENT_MARKER

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

Предупреждение: При использовании адаптации OpenGL убедитесь, что обработчик сигнала после синхронизации оставляет контекст 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 оставлял контекст OpenGL в том же состоянии, в котором он был при входе в обработчик. Несоблюдение этого требования может привести к неправильной отрисовке сцены.

См. также 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, движок создаст текстуру, которая может использовать фильтрацию mipmap. Мипмаппированные текстуры не могут находиться в атласе.

При использовании адаптации 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()

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

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

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.

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

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

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

[signal] void QQuickWindow::sceneGraphAboutToStop()

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

END_OF_DOCUMENT_MARKER

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

Предупреждение: Этот сигнал испускается из потока отрисовки графа сцены. Если функция вашего слота должна завершиться до продолжения выполнения, вы должны убедиться, что соединение прямое (см. 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/qt-5.12/qquickwindow.html

Spec-Zone.ru

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