Spec-Zone.ru › Qt 5.6

Класс 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 }

Свойства

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

Общедоступные функции

QQuickWindow(QWindow *parent = Q_NULLPTR)
virtual ~QQuickWindow()
QQuickItem * activeFocusItem() const
bool clearBeforeRendering() const
QColor color() const
QQuickItem * contentItem() const
QSGTexture * createTextureFromId(uint id, const QSize &size, CreateTextureOptions options = CreateTextureOption()) const
QSGTexture * createTextureFromImage(const QImage &image, 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
void resetOpenGLState()
void scheduleRenderJob(QRunnable *job, RenderStage stage)
bool sendEvent(QQuickItem *item, QEvent *e)
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
  • 78 общедоступных функций унаследовано от QWindow
  • 31 общедоступной функции унаследовано от QObject
  • 6 общедоступных функций унаследовано от QSurface

Общедоступные слоты

void releaseResources()
void update()
  • 22 общедоступных слотов унаследовано от 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()
void setDefaultAlphaBuffer(bool useAlpha)
  • 1 статический публичный член, унаследованный от QWindow
  • 11 статических публичных членов, унаследованных от QObject

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

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

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

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

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

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

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

Рендеринг

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

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

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

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

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

Экспозиция и видимость

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

Предупреждение: Ключевое значение, что операции OpenGL и взаимодействие с графиком сцены происходит исключительно в потоке рендеринга, прежде всего в фазе 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-мапы и может отрисовываться с включённым mip-маппингом.
QQuickWindow::TextureOwnsGLTexture 0x0004 Объект текстуры владеет идентификатором текстуры и удалит GL-текстуру при удалении объекта текстуры.
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, например, из-за отсутствия графических драйверов и, следовательно, отсутствия поддержки OpenGL 2. На мобильных и встроенных платформах, использующих OpenGL ES, такая ошибка, вероятно, указывает на проблемы в интеграции системы окон и, возможно, неправильную конфигурацию Qt.

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

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

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 = Q_NULLPTR)

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

[virtual] QQuickWindow::~QQuickWindow()

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

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

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

[signal] void QQuickWindow::afterAnimating()

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

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

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

[signal] void QQuickWindow::afterRendering()

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

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

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

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

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

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

[signal] void QQuickWindow::afterSynchronizing()

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

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

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

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

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

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

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

[signal] void QQuickWindow::beforeRendering()

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

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

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

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

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

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

[signal] void QQuickWindow::beforeSynchronizing()

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

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

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

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

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

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

bool QQuickWindow::clearBeforeRendering() const

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Возвращаемая текстура будет использовать 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().

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

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

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

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

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

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

[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().

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

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

QQmlIncubationController *QQuickWindow::incubationController() const

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

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

bool QQuickWindow::isPersistentOpenGLContext() const

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

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

bool QQuickWindow::isPersistentSceneGraph() const

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

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

bool QQuickWindow::isSceneGraphInitialized() const

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

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

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

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

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

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

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

QQuickItem *QQuickWindow::mouseGrabberItem() const

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

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

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

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

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

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

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

QOpenGLContext *QQuickWindow::openglContext() const

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

Если дерево сцены не готово, эта функция вернёт 0.

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

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

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

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

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

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

[slot] void QQuickWindow::releaseResources()

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

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

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

QOpenGLFramebufferObject *QQuickWindow::renderTarget() const

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

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

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

uint QQuickWindow::renderTargetId() const

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

QSize QQuickWindow::renderTargetSize() const

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

void QQuickWindow::resetOpenGLState()

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

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

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

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

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

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

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

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

[signal] void QQuickWindow::sceneGraphAboutToStop()

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

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

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

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

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

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

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

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

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

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

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

[signal] void QQuickWindow::sceneGraphInitialized()

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

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

[signal] void QQuickWindow::sceneGraphInvalidated()

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

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

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

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

void QQuickWindow::scheduleRenderJob(QRunnable *job, 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().

bool QQuickWindow::sendEvent(QQuickItem *item, QEvent *e)

Распространяет событие e на QQuickItem item в окне.

Возвращаемое значение в настоящее время не используется.

void QQuickWindow::setClearBeforeRendering(bool enabled)

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

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

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

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

END_OF_DOCUMENT_MARKER

[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.

См. также 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 должен быть создан в контексте окна или в контексте, который с ним разделяет.

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

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

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

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

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

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

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

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

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

[slot] void QQuickWindow::update()

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

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

[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.6/qquickwindow.html

Spec-Zone.ru

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