Sur cette page

QQuickWindow Class

La classe QQuickWindow fournit la fenêtre permettant d'afficher une scène graphique QML. En savoir plus...

En-tête : #include <QQuickWindow>
CMake : find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake : QT += quick
En QML : Window
Hérite de : QWindow
Hérité par :

QQuickView

Types publics

struct GraphicsStateInfo
enum CreateTextureOption { TextureHasAlphaChannel, TextureHasMipmaps, TextureOwnsGLTexture, TextureCanUseAtlas, TextureIsOpaque }
flags CreateTextureOptions
enum RenderStage { BeforeSynchronizingStage, AfterSynchronizingStage, BeforeRenderingStage, AfterRenderingStage, AfterSwapStage, NoStage }
enum SceneGraphError { ContextNotAvailable }
enum TextRenderType { QtTextRendering, NativeTextRendering, CurveTextRendering }

Propriétés

Fonctions publiques

QQuickWindow(QQuickRenderControl *control)
QQuickWindow(QWindow *parent = nullptr)
virtual ~QQuickWindow() override
QQuickItem *activeFocusItem() const
void beginExternalCommands()
QColor color() const
QQuickItem *contentItem() const
QSGImageNode *createImageNode() const
QSGNinePatchNode *createNinePatchNode() const
QSGRectangleNode *createRectangleNode() const
(since 6.7) QSGTextNode *createTextNode() const
QSGTexture *createTextureFromImage(const QImage &image, QQuickWindow::CreateTextureOptions options) const
QSGTexture *createTextureFromImage(const QImage &image) const
(since 6.6) QSGTexture *createTextureFromRhiTexture(QRhiTexture *texture, QQuickWindow::CreateTextureOptions options = {}) const
qreal effectiveDevicePixelRatio() const
void endExternalCommands()
QImage grabWindow()
(since 6.0) QQuickGraphicsConfiguration graphicsConfiguration() const
(since 6.0) QQuickGraphicsDevice graphicsDevice() const
const QQuickWindow::GraphicsStateInfo &graphicsStateInfo()
QQmlIncubationController *incubationController() const
bool isPersistentGraphics() const
bool isPersistentSceneGraph() const
bool isSceneGraphInitialized() const
(since 6.0) QQuickRenderTarget renderTarget() const
QSGRendererInterface *rendererInterface() const
(since 6.6) QRhi *rhi() const
void scheduleRenderJob(QRunnable *job, QQuickWindow::RenderStage stage)
void setColor(const QColor &color)
(since 6.0) void setGraphicsConfiguration(const QQuickGraphicsConfiguration &config)
(since 6.0) void setGraphicsDevice(const QQuickGraphicsDevice &device)
void setPersistentGraphics(bool persistent)
void setPersistentSceneGraph(bool persistent)
(since 6.0) void setRenderTarget(const QQuickRenderTarget &target)
(since 6.6) QRhiSwapChain *swapChain() const

Fonctions publiques réimplémentées

virtual QAccessibleInterface *accessibleRoot() const override

Slots publics

void releaseResources()
void update()

Signaux

void activeFocusItemChanged()
void afterAnimating()
(since 6.0) void afterFrameEnd()
void afterRenderPassRecording()
void afterRendering()
void afterSynchronizing()
(since 6.0) void beforeFrameBegin()
void beforeRenderPassRecording()
void beforeRendering()
void beforeSynchronizing()
void colorChanged(const QColor &)
(since 6.11) void devicePixelRatioChanged()
void frameSwapped()
void sceneGraphAboutToStop()
void sceneGraphError(QQuickWindow::SceneGraphError error, const QString &message)
void sceneGraphInitialized()
void sceneGraphInvalidated()

Membres publics statiques

(since 6.0) QSGRendererInterface::GraphicsApi graphicsApi()
bool hasDefaultAlphaBuffer()
QString sceneGraphBackend()
void setDefaultAlphaBuffer(bool useAlpha)
(since 6.0) void setGraphicsApi(QSGRendererInterface::GraphicsApi api)
void setSceneGraphBackend(const QString &backend)
void setTextRenderType(QQuickWindow::TextRenderType renderType)
QQuickWindow::TextRenderType textRenderType()

Fonctions protégées réimplémentées

virtual void closeEvent(QCloseEvent *e) override
virtual bool event(QEvent *event) 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 tabletEvent(QTabletEvent *event) override
virtual void wheelEvent(QWheelEvent *event) override

Description détaillée

QQuickWindow fournit la gestion graphique des scènes nécessaire pour interagir avec une scène de QQuickItems et l'afficher.

Une QQuickWindow possède toujours un seul élément racine invisible. Pour ajouter des éléments à cette fenêtre, réaffectez-les à l’élément racine ou à un élément existant de la scène.

Pour afficher facilement une scène à partir d'un fichier QML, consultez QQuickView.

Rendu

QQuickWindow utilise un graphe de scène pour représenter ce qui doit être rendu. Ce graphe de scène est déconnecté de la scène QML et peut s’exécuter dans un autre thread, selon l’implémentation de la plateforme. Comme le graphe de scène de rendu fonctionne indépendamment de la scène QML, il peut également être entièrement libéré sans affecter l’état de la scène QML.

Le signal sceneGraphInitialized() est émis sur le thread de rendu avant que la scène QML ne soit affichée à l’écran pour la première fois. Si le graphe de scène de rendu a été libéré, le signal sera à nouveau émis avant le rendu de l’image suivante. Une fenêtre QQuickWindow visible à l’écran est pilotée en interne par un ` render loop`, dont plusieurs implémentations sont fournies dans le graphe de scène. Pour plus de détails sur le processus de rendu du graphe de scène, consultez la section « Graphe de scène » de la documentation «Qt Quick ».

Par défaut, une QQuickWindow s’affiche à l’aide d’une API graphique 3D accélérée, telle qu’OpenGL ou Vulkan. Consultez la section Adaptations du graphe de scène pour un aperçu détaillé des backends du graphe de scène et des API graphiques prises en charge.

Avertissement : il est essentiel que les opérations graphiques et les interactions avec le graphe de scène s’effectuent exclusivement sur le thread de rendu, principalement pendant la phase updatePaintNode().

Avertissement : comme de nombreux signaux liés au rendu sont émis depuis le fil de rendu, les connexions doivent être établies à l’aide de ` Qt::DirectConnection`.

Intégration avec les API graphiques 3D accélérées

Il est possible d’intégrer directement des appels OpenGL, Vulkan, Metal ou Direct3D 11 dans la QQuickWindow, à condition que celle-ci et le graphe de scène sous-jacent utilisent la même API pour le rendu. Pour accéder à des objets graphiques natifs, tels que les descripteurs de périphériques ou d’objets de contexte, utilisez ` QSGRendererInterface`. Une instance de ` QSGRendererInterface ` peut être interrogée depuis `QQuickWindow` en appelant ` rendererInterface()`. Les éléments permettant cette intégration sont les signaux ` beforeRendering()`, ` beforeRenderPassRecording()`, ` afterRenderPassRecording()` et les signaux associés. Ceux-ci permettent le rendu de calques sous-jacents ou superposés. Sinon, les classes ` QNativeInterface::QSGOpenGLTexture`, ` QNativeInterface::QSGVulkanTexture` et d’autres classes similaires permettent d’envelopper un objet de texture ou d’image natif existant dans un ` QSGTexture `, qui peut ensuite être utilisé avec le graphe de scène.

Rendu sans accélération

Un chemin de rendu pur logiciel, aux fonctionnalités limitées, est également disponible. Avec le backend « software », un certain nombre de fonctionnalités d’ Qt Quick s ne sont pas disponibles ; les éléments QML qui en dépendent ne seront donc pas rendus du tout. En revanche, cela permet à QQuickWindow de fonctionner même sur des systèmes ne disposant d’aucune API graphique 3D. Pour plus de détails, consultez la section « Adaptation logicielle » à l'adresseQt Quick .

Rendu redirigé

Une QQuickWindow n’est pas nécessairement adossée à une fenêtre native à l’écran. Le rendu peut être redirigé vers une cible de rendu personnalisée, telle qu’une texture native donnée. Ceci est rendu possible grâce à la classe QQuickRenderControl et à des fonctions telles que setRenderTarget(), setGraphicsDevice() et setGraphicsConfiguration().

Dans ce cas, la classe `QQuickWindow` représente la scène et fournit l'infrastructure nécessaire au rendu d'une image. Elle ne s'appuie pas sur une boucle de rendu ni sur une fenêtre native. À la place, c'est l'application qui pilote le rendu, se substituant ainsi aux boucles de rendu. Cela permet de générer des séquences d’images, d’effectuer un rendu dans des textures destinées à être utilisées dans des moteurs 3D externes, ou de rendre du contenu d’ Qt Quick s dans un environnement de réalité virtuelle.

Gestion des ressources

QML tentera de mettre en cache les images et les nœuds du graphe de scène afin d’améliorer les performances, mais dans certains scénarios de mémoire insuffisante, il peut s’avérer nécessaire de libérer ces ressources de manière agressive. La fonction releaseResources() peut être utilisée pour forcer le nettoyage de certaines ressources, en particulier celles qui sont mises en cache et qui peuvent être recréées ultérieurement si nécessaire.

De plus, l'appel de ` releaseResources()` peut entraîner la libération de l'intégralité de l'arborescence de scène et des ressources graphiques associées. Le signal ` sceneGraphInvalidated()` sera émis lorsque cela se produit. Ce comportement est contrôlé par les fonctions ` setPersistentGraphics()` et ` setPersistentSceneGraph()`.

Remarque : toutes les classes préfixées par « QSG » doivent être utilisées exclusivement sur le thread de rendu du graphe de scène. Voir Graphe de scène et rendu pour plus d’informations.

Exposition et visibilité

Lorsqu’une instance de `QQuickWindow` est délibérément masquée à l’aide de ` hide()` ou `setVisible(false)`, son rendu s’arrête et son graphe de scène ainsi que son contexte graphique peuvent également être libérés. Cela dépend des paramètres définis par ` setPersistentGraphics()` et ` setPersistentSceneGraph()`. À cet égard, le comportement est identique à celui obtenu en appelant explicitement la fonction ` releaseResources()`. Une fenêtre peut également devenir non exposée, c’est-à-dire non affichable, par d’autres moyens. Cela dépend de la plateforme et du système de gestion des fenêtres. Par exemple, sous Windows, le fait de réduire une fenêtre à l’icône entraîne l’arrêt de son affichage. Sous macOS, le fait qu’une fenêtre soit entièrement masquée par d’autres fenêtres superposées produit le même effet. Sous Linux/X11, le comportement dépend du gestionnaire de fenêtres.

Contexte OpenGL et formats de surface

Bien qu’il soit possible de spécifier un format de surface ( QSurfaceFormat ) pour chaque instance de `QQuickWindow` en appelant la fonction membre ` setFormat()`, les fenêtres peuvent également être créées à partir de QML à l’aide des éléments `Window` et ` ApplicationWindow `. Dans ce cas, aucun code C++ n’intervient dans la création de l’instance de fenêtre, mais les applications peuvent néanmoins souhaiter définir certaines valeurs de format de surface, par exemple pour demander une version ou un profil OpenGL donné. Ces applications peuvent appeler la fonction statique QSurfaceFormat::setDefaultFormat() au démarrage. Le format spécifié sera utilisé pour toutes les fenêtres Quick créées par la suite.

Instance Vulkan

Lors de l’utilisation de Vulkan, une QQuickWindow est automatiquement associée à une instance de Vulkan ( QVulkanInstance ) créée et gérée en interne par le graphe de scène. Ainsi, la plupart des applications n’ont pas à se soucier de la disponibilité d’une instance de Vulkan ( VkInstance ), car tout se passe automatiquement. Dans certains cas avancés, une application peut souhaiter créer sa propre instance de Vulkan ( QVulkanInstance) afin de la configurer de manière spécifique. Cela est également possible. L’appel de la méthode ` setVulkanInstance()` sur la `QQuickWindow` immédiatement après sa construction, avant de la rendre visible, entraîne l’utilisation de l’` QVulkanInstance ` fournie par l’application (et de l’` VkInstance` sous-jacente). Lors d’une redirection via ` QQuickRenderControl`, aucun ` QVulkanInstance ` n’est fourni automatiquement ; l’application doit fournir le sien et l’associer à la `QQuickWindow`.

Contextes graphiques et périphériques

Lors de l’initialisation du graphe de scène, qui se produit généralement lorsque la fenêtre devient visible ou, en cas de rendu redirigé, lorsque l’initialisation est effectuée par via QQuickRenderControl, les objets de contexte ou de périphérique nécessaires au rendu sont créés automatiquement. Cela inclut les contextes OpenGL, les périphériques Direct3D et leurs contextes, ainsi que les périphériques Vulkan et Metal. Ceux-ci peuvent également être interrogés par la suite par le code de l’application via QSGRendererInterface. Lors de l’utilisation de la boucle de rendu « basic », qui effectue tout le rendu sur le thread de l’interface graphique, le même contexte ou périphérique est utilisé avec toutes les fenêtres QQuickWindow visibles. La boucle de rendu « threaded » utilise un objet de contexte ou de périphérique dédié pour chaque thread de rendu, et donc pour chaque fenêtre QQuickWindow. Avec certaines API graphiques, un certain degré de personnalisation est offert via la fonction setGraphicsConfiguration(). Cela permet, par exemple, de spécifier la liste des extensions Vulkan à activer sur l’ VkDevice. Il est également possible de fournir un ensemble d’objets de contexte ou de périphérique existants à utiliser par la QQuickWindow, au lieu de la laisser en créer elle-même. Cela s’effectue via la fonction setGraphicsDevice().

Voir également QQuickView, QQuickRenderControl, QQuickRenderTarget, QQuickGraphicsDevice, QQuickGraphicsConfiguration et QSGRendererInterface.

Documentation sur les types de membres

enum QQuickWindow::CreateTextureOption
flags QQuickWindow::CreateTextureOptions

Les énumérations CreateTextureOption permettent de personnaliser le mode de répétition d'une texture.

ConstanteValeurDescription
QQuickWindow::TextureHasAlphaChannel0x0001La texture dispose d'un canal alpha et doit être dessinée en utilisant le mélange.
QQuickWindow::TextureHasMipmaps0x0002La texture dispose de mipmaps et peut être dessinée avec le mipmapping activé.
QQuickWindow::TextureOwnsGLTexture0x0004À partir de Qt 6.0, cet indicateur n’est plus utilisé en pratique et est ignoré. La propriété d’une ressource graphique native n’est pas transférable à QSGTexture d’encapsulation, car Qt Quick peut ne pas disposer des informations nécessaires sur la manière dont un tel objet et la mémoire associée doivent être libérés.
QQuickWindow::TextureCanUseAtlas0x0008L'image peut être chargée dans un atlas de textures.
QQuickWindow::TextureIsOpaque0x0010La texture renverra `false` pour ` QSGTexture::hasAlphaChannel()` et ne fera pas l'objet d'un mélange. Ce drapeau a été ajouté dans Qt 5.6.

Le type `CreateTextureOptions` est un `typedef` pour ` QFlags<CreateTextureOption>`. Il stocke une combinaison (ou) de valeurs `CreateTextureOption`.

enum QQuickWindow::RenderStage

ConstanteValeurDescription
QQuickWindow::BeforeSynchronizingStage0Avant la synchronisation.
QQuickWindow::AfterSynchronizingStage1Après la synchronisation.
QQuickWindow::BeforeRenderingStage2Avant le rendu.
QQuickWindow::AfterRenderingStage3Après le rendu.
QQuickWindow::AfterSwapStage4Après l'échange d'image.
QQuickWindow::NoStage5Dès que possible. Cette valeur a été ajoutée dans Qt 5.6.

Voir également «Graphique de scène »et « Rendu ».

enum QQuickWindow::SceneGraphError

Cette énumération décrit l'erreur contenue dans un signal de type ` sceneGraphError()`.

ConstanteValeurDescription
QQuickWindow::ContextNotAvailable1Échec de la création du contexte graphique. Cela signifie généralement qu’aucune implémentation OpenGL appropriée n’a été trouvée, par exemple parce qu’aucun pilote graphique n’est installé et qu’il n’y a donc pas de prise en charge d’OpenGL 2. Sur les cartes mobiles et embarquées utilisant OpenGL ES, une telle erreur est susceptible d’indiquer des problèmes d’intégration du système de fenêtrage et éventuellement une configuration incorrecte de Qt OpenGL.

enum QQuickWindow::TextRenderType

Cette énumération décrit le type de rendu par défaut des éléments de type texte dans « Qt Quick » (Text, TextInput, etc.).

Sélectionnez « NativeTextRendering » si vous préférez que le texte s'affiche de manière native sur la plateforme cible et si vous n'avez pas besoin de fonctionnalités avancées telles que la transformation du texte. L'utilisation de ces fonctionnalités en combinaison avec le type de rendu « NativeTextRendering » donnera des résultats médiocres et parfois pixélisés.

QtTextRendering et CurveTextRendering sont toutes deux des techniques bénéficiant d’une accélération matérielle. QtTextRendering est la plus rapide des deux, mais elle utilise davantage de mémoire et peut présenter des artefacts de rendu sur les grandes tailles. CurveTextRendering doit être envisagé comme une alternative lorsque QtTextRendering ne donne pas de bons résultats visuels ou lorsque la réduction de la consommation de mémoire graphique est une priorité.

ConstanteValeurDescription
QQuickWindow::QtTextRendering0Utilise l'algorithme de rastérisation propre à Qt.
QQuickWindow::NativeTextRendering1Utilise le rasteriseur natif du système d’exploitation pour le texte.
QQuickWindow::CurveTextRendering2Le texte est rendu à l'aide d'un rasteriseur de courbes s'exécutant directement sur le matériel graphique. (Introduit dans Qt 6.7.0.)

Documentation de la propriété

[read-only] activeFocusItem : QQuickItem*

Cette propriété contient l'élément qui a actuellement le focus, ou la valeur « null » s'il n'y a aucun élément ayant le focus.

Fonctions d'accès :

QQuickItem *activeFocusItem() const

Signal de notification :

void activeFocusItemChanged()

Voir également QQuickItem::forceActiveFocus() et « Focus clavier » dans Qt Quick.

color : QColor

Cette propriété contient la couleur utilisée pour effacer le tampon de couleur au début de chaque image.

Par défaut, la couleur d'effacement est le blanc.

Fonctions d'accès :

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

Signal de notification :

void colorChanged(const QColor &)

Voir également setDefaultAlphaBuffer().

[read-only] contentItem : QQuickItem* const

Cette propriété contient l'élément racine invisible de la scène.

Une fenêtre « QQuickWindow » comporte toujours un seul élément racine invisible contenant l'ensemble de son contenu. Pour ajouter des éléments à cette fenêtre, réaffectez-les au «contentItem» ou à un élément existant de la scène.

Fonctions d'accès :

QQuickItem *contentItem() const

[read-only, since 6.11] devicePixelRatio : qreal

Renvoie le rapport entre les pixels physiques et les pixels indépendants du périphérique pour la fenêtre. Cette valeur dépend de l'écran sur lequel se trouve la fenêtre et peut varier lorsque celle-ci est déplacée.

Cette énumération a été introduite dans Qt 6.11.

Fonctions d'accès :

Signal de notification :

transientParent : QWindow*

Cette propriété contient la fenêtre pour laquelle la fenêtre actuelle est une fenêtre contextuelle temporaire.

Cela indique au gestionnaire de fenêtres que cette fenêtre est une boîte de dialogue ou une fenêtre contextuelle au nom de la fenêtre parente temporaire, qui peut être n'importe quel type de ` QWindow`.

Afin que la fenêtre soit centrée par défaut au-dessus de sa fenêtre parente transitoire, selon le gestionnaire de fenêtres, il peut également être nécessaire de définir la propriété ` flags ` avec une valeur appropriée de ` Qt::WindowType ` (telle que ` Qt::Dialog`).

Voir également parent().

Documentation des fonctions membres

[explicit] QQuickWindow::QQuickWindow(QQuickRenderControl *control)

Crée une fenêtre permettant d'afficher une scène QML, dont le rendu sera géré par l'objet ` control `. Pour plus d'informations, veuillez consulter la documentation disponible à l'adresse QQuickRenderControl.

[explicit] QQuickWindow::QQuickWindow(QWindow *parent = nullptr)

Crée une fenêtre permettant d'afficher une scène QML dont la fenêtre parente est parent.

[override virtual noexcept] QQuickWindow::~QQuickWindow()

Supprime la fenêtre.

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

Renvoie une interface d'accessibilité pour cette fenêtre, ou 0 si une telle interface ne peut pas être créée.

[signal] void QQuickWindow::afterAnimating()

Ce signal est émis sur le thread de l'interface graphique avant de demander au thread de rendu d'effectuer la synchronisation de l'arborescence de scène.

Contrairement aux autres signaux similaires, celui-ci est émis sur le thread de l'interface graphique plutôt que sur le thread de rendu. Il peut être utilisé pour synchroniser des systèmes d'animation externes avec le contenu QML. Cela signifie également que ce signal n'est pas adapté au déclenchement d'opérations graphiques.

[signal, since 6.0] void QQuickWindow::afterFrameEnd()

Ce signal est émis lorsque le graphe de scène a soumis une image. Il est émis après tous les autres signaux associés, tels que ` afterRendering()`. Il s'agit du dernier signal émis par le thread de rendu du graphe de scène lors du rendu d'une image.

Remarque : contrairement à ` frameSwapped()`, ce signal est garanti d’être émis même lorsque la sortie ` Qt Quick ` est redirigée via ` QQuickRenderControl`.

Avertissement : ce signal est émis par le thread de rendu du graphe de scène. Si votre fonction de slot doit s'achever avant que l'exécution ne se poursuive, vous devez vous assurer que la connexion est directe (voir Qt::ConnectionType).

Cette fonction a été introduite dans Qt 6.0.

Voir également beforeFrameBegin() et rendererInterface().

[signal] void QQuickWindow::afterRenderPassRecording()

Ce signal est émis une fois que le graphe de scène a enregistré les commandes relatives à son passage de rendu principal, mais que ce passage n'est pas encore finalisé dans le tampon de commandes.

Ce signal est émis avant l'appel à ` afterRendering()`, et il garantit que non seulement l'image, mais aussi l'enregistrement du passage de rendu principal du graphe de scène sont toujours actifs. Cela permet d'insérer des commandes sans avoir à générer un passage de rendu complet et distinct (ce qui effacerait généralement les images associées). Les objets graphiques natifs peuvent être interrogés via ` QSGRendererInterface`.

Remarque : les mises à jourde ressources (téléversements, copies) ne peuvent généralement pas être mises en file d’attente depuis l’intérieur d’un passage de rendu. Par conséquent, un rendu utilisateur plus complexe devra se connecter à la fois à ` beforeRendering()` et à ce signal.

Avertissement : ce signal est émis depuis le thread de rendu du graphe de scène. Si votre fonction de slot doit s'achever avant que l'exécution ne se poursuive, vous devez vous assurer que la connexion est directe (voir Qt::ConnectionType).

Voir également rendererInterface() et « Graphique de scène - RHI » dans la section QML.

[signal] void QQuickWindow::afterRendering()

Le signal est émis une fois que le graphe de scène a ajouté ses commandes au tampon de commandes, qui n’a pas encore été soumis à la file d’attente graphique. Si vous le souhaitez, la fonction de slot connectée à ce signal peut interroger les ressources natives, telles que le tampon de commandes, avant l'appel à ` QSGRendererInterface`. Notez toutefois que le ou les passages de rendu sont déjà enregistrés à ce stade et qu'il n'est pas possible d'ajouter d'autres commandes au sein du passage du graphe de scène. Utilisez plutôt afterRenderPassRecording() à cette fin. Ce signal a donc une utilité limitée dans Qt 6, contrairement à Qt 5. C’est plutôt la combinaison de beforeRendering() et beforeRenderPassRecording(), ou de beforeRendering() et afterRenderPassRecording(), qui est généralement utilisée pour réaliser la superposition ou la sous-superposition du rendu personnalisé.

Avertissement : ce signal est émis depuis le thread de rendu du graphe de scène. Si votre fonction de slot doit s’achever avant que l’exécution ne se poursuive, vous devez vous assurer que la connexion est directe (voir Qt::ConnectionType).

Remarque : lorsque vous utilisez OpenGL, sachez que le fait de définir des états spécifiques à OpenGL 3.x ou 4.x et de les laisser activés ou définis sur des valeurs non par défaut lors du retour depuis le slot connecté peut interférer avec le rendu du graphe de scène. L’ QOpenGLContext utilisé pour le rendu par le graphe de scène sera lié lorsque le signal est émis.

Voir également rendererInterface(), Graphique de scène - RHI sous QML, Graphique de scène - OpenGL sous QML, Graphique de scène - Metal sous QML, Graphique de scène - Vulkan sous QML et Graphique de scène - Direct3D 11 sous QML.

[signal] void QQuickWindow::afterSynchronizing()

Ce signal est émis une fois que le graphe de scène est synchronisé avec l'état QML.

Ce signal peut être utilisé pour effectuer les préparatifs nécessaires après les appels à ` QQuickItem::updatePaintNode()`, tant que le thread de l'interface graphique est encore verrouillé.

Lors de l’utilisation d’OpenGL, l’ QOpenGLContext utilisé pour le rendu par le graphe de scène sera lié à ce moment-là.

Avertissement : ce signal est émis depuis le thread de rendu du graphe de scène. Si votre fonction de slot doit s'achever avant que l'exécution ne se poursuive, vous devez vous assurer que la connexion est directe (voir Qt::ConnectionType).

Avertissement : lors de l’utilisation d’OpenGL, sachez que la définition d’états spécifiques à OpenGL 3.x ou 4.x et le fait de les laisser activés ou définis sur des valeurs non par défaut lors du retour depuis le slot connected peuvent interférer avec le rendu du graphe de scène.

[signal, since 6.0] void QQuickWindow::beforeFrameBegin()

Ce signal est émis avant que le graphe de scène ne commence à préparer l'image. Il précède des signaux tels que beforeSynchronizing() ou beforeRendering(). Il s'agit du premier signal émis par le thread de rendu du graphe de scène lorsqu'il commence à préparer une nouvelle image.

Ce signal est pertinent pour les frameworks graphiques de bas niveau qui doivent exécuter certaines opérations, telles que le nettoyage des ressources, à un stade où Qt Quick n’a pas encore lancé l’enregistrement d’une nouvelle image via les API de l’interface matérielle de rendu sous-jacente.

Avertissement : ce signal est émis par le thread de rendu du graphe de scène. Si votre fonction de slot doit s’achever avant que l’exécution ne se poursuive, vous devez vous assurer que la connexion est directe (voir Qt::ConnectionType).

Cette fonction a été introduite dans Qt 6.0.

Voir également ` afterFrameEnd()` et ` rendererInterface()`.

[signal] void QQuickWindow::beforeRenderPassRecording()

Ce signal est émis avant que le graphisme de scène ne commence à enregistrer les commandes pour le passage de rendu principal. (Les calques ont leurs propres passages et sont entièrement enregistrés au moment où ce signal est émis.) Le passage de rendu est déjà actif dans le tampon de commandes lorsque le signal est émis.

Ce signal est émis après l’appel ` beforeRendering()` et garantit que non seulement l’image, mais aussi l’enregistrement du passage de rendu principal du graphisme de scène sont actifs. Cela permet d’insérer des commandes sans avoir à générer un passage de rendu complet et distinct (ce qui effacerait généralement les images associées). Les objets graphiques natifs peuvent être interrogés via ` QSGRendererInterface`.

Remarque : les mises à jourde ressources (téléversions, copies) ne peuvent généralement pas être mises en file d’attente depuis un passage de rendu. Par conséquent, un rendu utilisateur plus complexe devra se connecter à la fois à ` beforeRendering()` et à ce signal.

Avertissement : ce signal est émis depuis le thread de rendu du graphe de scène. Si votre fonction de slot doit s’achever avant que l’exécution ne se poursuive, vous devez vous assurer que la connexion est directe (voir Qt::ConnectionType).

Voir également rendererInterface() et « Graphique de scène - RHI » sous QML.

[signal] void QQuickWindow::beforeRendering()

Ce signal est émis une fois que les préparatifs pour l'image sont terminés, ce qui signifie qu'il existe un tampon de commandes en mode enregistrement, le cas échéant. Si vous le souhaitez, la fonction de slot connectée à ce signal peut interroger les ressources natives, comme la commande précédente, via QSGRendererInterface. Notez toutefois que l'enregistrement du passage de rendu principal n'a pas encore commencé à ce stade et qu'il n'est pas possible d'ajouter des commandes au sein de ce passage. Lancer un passage implique d’effacer les tampons de couleur, de profondeur et de stencil ; il n’est donc pas possible d’obtenir un rendu de type « underlay » en se contentant de se connecter à ce signal. Il est préférable de se connecter à ` beforeRenderPassRecording()`. Toutefois, la connexion à ce signal reste importante si l’on souhaite enregistrer des commandes de type « copy », car celles-ci ne peuvent pas être mises en file d’attente au sein d’un passage de rendu.

Avertissement : ce signal est émis par le thread de rendu du graphe de scène. Si votre fonction de slot doit s’achever avant que l’exécution ne se poursuive, vous devez vous assurer que la connexion est directe (voir Qt::ConnectionType).

Remarque : lorsque vous utilisez OpenGL, sachez que le fait de définir des états spécifiques à OpenGL 3.x ou 4.x et de les laisser activés ou définis sur des valeurs non par défaut lors du retour depuis le slot connecté peut interférer avec le rendu du graphe de scène. L’ QOpenGLContext utilisé pour le rendu par le graphe de scène sera lié lorsque le signal sera émis.

Voir également rendererInterface(), Graphique de scène - RHI sous QML, Graphique de scène - OpenGL sous QML, Graphique de scène - Metal sous QML, Graphique de scène - Vulkan sous QML et Graphique de scène - Direct3D 11 sous QML.

[signal] void QQuickWindow::beforeSynchronizing()

Ce signal est émis avant que le graphe de scène ne soit synchronisé avec l'état QML.

Même si le signal est émis depuis le thread de rendu du graphe de scène, le thread de l'interface graphique est garanti d'être bloqué, comme c'est le cas dans ` QQuickItem::updatePaintNode()` (). Par conséquent, il est possible d'accéder en toute sécurité aux données du thread de l'interface graphique dans un slot ou un lambda connecté à ` Qt::DirectConnection`.

Ce signal peut être utilisé pour effectuer toute préparation nécessaire avant les appels à ` QQuickItem::updatePaintNode()`.

Lors de l’utilisation d’OpenGL, le QOpenGLContext utilisé pour le rendu par le graphe de scène sera lié à ce stade.

Avertissement : ce signal est émis depuis le thread de rendu du graphe de scène. Si votre fonction de slot doit s’achever avant que l’exécution ne se poursuive, vous devez vous assurer que la connexion est directe (voir Qt::ConnectionType).

Avertissement : lorsque vous utilisez OpenGL, sachez que le fait de définir des états spécifiques à OpenGL 3.x ou 4.x et de les laisser activés ou définis sur des valeurs non par défaut lors du retour depuis le slot connecté peut interférer avec le rendu du graphe de scène.

void QQuickWindow::beginExternalCommands()

Lorsqu'on combine des commandes graphiques brutes (OpenGL, Vulkan, Metal, etc.) avec le rendu via le graphe de scène, il est nécessaire d'appeler cette fonction avant d'enregistrer les commandes dans le tampon de commandes utilisé par le graphe de scène pour effectuer son passage de rendu principal. Cela permet d'éviter de corrompre l'état.

En pratique, cette fonction est souvent appelée depuis un slot connecté aux signaux « beforeRenderPassRecording() » ou « afterRenderPassRecording() ».

Il n’est pas nécessaire d’appeler cette fonction lors de l’enregistrement de commandes dans le tampon de commandes propre à l’application (tel qu’un `VkCommandBuffer` ou un `MTLCommandBuffer` + `MTLRenderCommandEncoder` créé et géré par l’application, et non récupéré à partir du graphe de scène). Avec les API graphiques qui n’exposent pas de concept natif de tampon de commandes (OpenGL, Direct 3D 11), les fonctions beginExternalCommands() et endExternalCommands() remplacent ensemble la fonction resetOpenGLState() de Qt 5.

L’appel de cette fonction et de ` endExternalCommands()` n’est pas nécessaire dans l’implémentation de ` render()` d’un nœud de rendu ( QSGRenderNode ), car le graphe de scène effectue implicitement les étapes nécessaires pour les nœuds de rendu.

Les objets graphiques natifs (tels que le périphérique graphique, le tampon de commandes ou l'encodeur) sont accessibles via QSGRendererInterface::getResource().

Avertissement : veillez à ce que QSGRendererInterface::CommandListResource puisse renvoyer un objet différent entre les appels à beginExternalCommands() et endExternalCommands(). Cela peut se produire lorsque l'implémentation sous-jacente fournit un tampon de commandes secondaire dédié à l'enregistrement des commandes graphiques externes au cours d'un passage de rendu. Par conséquent, interrogez toujours CommandListResource après avoir appelé cette fonction. N'essayez pas de réutiliser un objet issu d'une requête précédente.

Remarque : lorsque le graphe de scène utilise OpenGL, notez que l’état OpenGL dans le contexte peut présenter des paramètres arbitraires et que cette fonction ne réinitialise pas l’état à ses valeurs par défaut.

Voir également endExternalCommands() et QQuickOpenGLUtils::resetOpenGLState().

[override virtual protected] void QQuickWindow::closeEvent(QCloseEvent *e)

Réimplémente : QWindow::closeEvent(QCloseEvent *ev).

QSGImageNode *QQuickWindow::createImageNode() const

Crée un nœud d'image simple. Si le graphe de scène n'est pas initialisé, la valeur renvoyée est nulle.

Il s'agit d'une alternative multi-backends à la construction directe d'un ` QSGSimpleTextureNode `.

Voir également QSGImageNode.

QSGNinePatchNode *QQuickWindow::createNinePatchNode() const

Crée un nœud « nine patch ». Si le graphe de scène n'est pas initialisé, la valeur renvoyée est nulle.

QSGRectangleNode *QQuickWindow::createRectangleNode() const

Crée un nœud rectangle simple. Si le graphe de scène n'est pas initialisé, la valeur renvoyée est nulle.

Il s'agit d'une alternative multi-backends à la construction directe d'un ` QSGSimpleRectNode `.

Voir également QSGRectangleNode.

[since 6.7] QSGTextNode *QQuickWindow::createTextNode() const

Crée un nœud de texte. Si le graphe de scène n'est pas initialisé, la valeur renvoyée est nulle.

Cette fonction a été introduite dans Qt 6.7.

Voir aussi QSGTextNode.

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

Crée une nouvelle texture ` QSGTexture ` à partir de l’image fournie ` image`. Si l’image possède un canal alpha, la texture correspondante possédera également un canal alpha.

L'appelant de la fonction est chargé de supprimer la texture renvoyée. L'objet de texture natif sous-jacent est alors détruit en même temps que l'QSGTexture.

Lorsque ` options ` contient ` TextureCanUseAtlas`, le moteur peut intégrer l’image dans un atlas de textures. Les textures d’un atlas doivent s’appuyer sur ` QSGTexture::normalizedTextureSubRect()` pour leur géométrie et ne prendront pas en charge ` QSGTexture::Repeat`. Les autres valeurs de ` CreateTextureOption ` sont ignorées.

Lorsque options contient TextureIsOpaque, le moteur créera une texture RVB qui renvoie « false » pour la fonction QSGTexture::hasAlphaChannel(). Les textures opaques seront, dans la plupart des cas, plus rapides à rendre. Lorsque cet indicateur n’est pas activé, la texture disposera d’un canal alpha basé sur le format de l’image.

Lorsque ` options ` contient ` TextureHasMipmaps`, le moteur créera une texture pouvant utiliser le filtrage mipmap. Les textures mipmappées ne peuvent pas figurer dans un atlas.

Définir ` TextureHasAlphaChannel ` sur ` options ` n’a aucun effet pour cette fonction, car la présence d’un canal alpha et le mélange sont activés par défaut. Pour désactiver cette fonctionnalité, définissez ` TextureIsOpaque`.

Lorsque le graphe de scène utilise OpenGL, la texture renvoyée utilisera GL_TEXTURE_2D comme cible de texture et GL_RGBA comme format interne. Avec d’autres API graphiques, le format de texture est généralement RGBA8. Réimplémentez QSGTexture pour créer des textures avec des paramètres différents.

Avertissement : cette fonction renvoie 0 si le graphe de scène n’a pas encore été initialisé.

Avertissement : la texture renvoyée n’est pas gérée en mémoire par le graphe de scène et doit être explicitement supprimée par l’appelant sur le thread de rendu. Pour ce faire, il faut supprimer la texture depuis un destructeur de type « QSGNode » ou utiliser deleteLater() dans le cas où la texture est déjà associée au thread de rendu.

Cette fonction peut être appelée aussi bien depuis le thread principal que depuis le thread de rendu.

Voir également sceneGraphInitialized() et QSGTexture.

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

Il s'agit d'une fonction surchargée.

[since 6.6] QSGTexture *QQuickWindow::createTextureFromRhiTexture(QRhiTexture *texture, QQuickWindow::CreateTextureOptions options = {}) const

Crée une nouvelle instance de ` QSGTexture ` à partir de l'objet ` texture` fourni.

Utilisez options pour personnaliser les attributs de la texture. Seul l'indicateur TextureHasAlphaChannel est pris en compte par cette fonction. Lorsqu'il est activé, l'QSGTexture résultante est toujours traitée par le moteur de rendu du graphe de scène comme nécessitant un mélange. Pour les textures entièrement opaques, ne pas activer cet indicateur permet d'économiser le coût lié à l'exécution d'un mélange alpha lors du rendu. Ce drapeau n’a aucun lien direct avec l’ format de l’ QRhiTexture, c’est-à-dire qu’il est tout à fait normal de ne pas le définir tout en utilisant un format de texture tel que le format couramment utilisé QRhiTexture::RGBA8.

Le mipmapping n’est pas contrôlé par options, car texture est déjà créé et intègre la présence ou l’absence de mipmaps.

L’objet ` QSGTexture ` renvoyé est propriétaire de l’objet ` QRhiTexture`, ce qui signifie que l’objet ` texture ` est détruit en même temps que l’objet ` QSGTexture` renvoyé.

Si ` texture ` détient ses ressources graphiques natives sous-jacentes (objet de texture OpenGL, image Vulkan, etc.), cela dépend de la manière dont ` QRhiTexture ` a été créé (`QRhiTexture::create()` ou ` QRhiTexture::createFrom()`), et cela n’est ni contrôlé ni modifié par cette fonction.

Remarque : cette fonction n’est opérationnelle que lorsque le graphe de scène a déjà été initialisé et utilise l’adaptation par défaut basée sur « QRhi ». Dans le cas contraire, la valeur renvoyée est « nullptr ».

Remarque : cette fonction ne peut être appelée que sur le thread de rendu du graphe de scène.

Cette fonction a été introduite dans Qt 6.6.

Voir également createTextureFromImage(), sceneGraphInitialized() et QSGTexture.

[signal, since 6.11] void QQuickWindow::devicePixelRatioChanged()

Ce signal est émis lorsque le rapport de pixels effectif de l'appareil a été modifié.

Remarque : signalde notification pour la propriété devicePixelRatio.

Cette fonction a été introduite dans Qt 6.11.

Voir également ` effectiveDevicePixelRatio()`.

qreal QQuickWindow::effectiveDevicePixelRatio() const

Renvoie le rapport de pixels de l'appareil pour cette fenêtre.

Cette fonction diffère de ` QWindow::devicePixelRatio()` en ce qu’elle prend en charge le rendu redirigé via ` QQuickRenderControl ` et ` QQuickRenderTarget`. Lors de l’utilisation d’un ` QQuickRenderControl`, la ` QQuickWindow ` n’est souvent pas entièrement créée, ce qui signifie qu’elle n’est jamais affichée et qu’aucune fenêtre native sous-jacente n’est créée dans le système de fenêtrage. Par conséquent, l'interrogation de propriétés telles que le rapport de pixels de l'appareil ne peut pas donner de résultats corrects. Cette fonction prend en compte à la fois QQuickRenderControl::renderWindowFor() et QQuickRenderTarget::devicePixelRatio(). Lorsqu'aucune redirection n'est active, le résultat est identique à celui de QWindow::devicePixelRatio().

Remarque : fonctiongetter pour la propriété devicePixelRatio.

Voir également QQuickRenderControl, QQuickRenderTarget, setRenderTarget() et QWindow::devicePixelRatio().

void QQuickWindow::endExternalCommands()

Lorsqu'on combine des commandes graphiques brutes (OpenGL, Vulkan, Metal, etc.) avec le rendu via le graphe de scène, il est nécessaire d'appeler cette fonction après avoir enregistré les commandes dans le tampon de commandes utilisé par le graphe de scène pour effectuer son passage de rendu principal. Cela permet d'éviter toute corruption de l'état.

En pratique, cette fonction est souvent appelée depuis un slot connecté aux signaux « beforeRenderPassRecording() » ou « afterRenderPassRecording() ».

Il n’est pas nécessaire d’appeler cette fonction lors de l’enregistrement de commandes dans le tampon de commandes propre à l’application (tel qu’un VkCommandBuffer ou un MTLCommandBuffer + MTLRenderCommandEncoder créé et géré par l’application, et non récupéré à partir du graphe de scène). Avec les API graphiques qui n’exposent pas de concept natif de tampon de commandes (OpenGL, Direct 3D 11), les fonctions beginExternalCommands() et endExternalCommands() remplacent ensemble la fonction resetOpenGLState() de Qt 5.

L’appel de cette fonction et de ` beginExternalCommands()` n’est pas nécessaire dans l’implémentation de ` render()` d’un nœud de rendu ( QSGRenderNode ), car le graphe de scène effectue implicitement les étapes nécessaires pour les nœuds de rendu.

Voir également beginExternalCommands() et QQuickOpenGLUtils::resetOpenGLState().

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

Réimplémente : QWindow::event(QEvent *ev).

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

Réimplémente : QWindow::exposeEvent(QExposeEvent *ev).

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

Réimplémente : QWindow::focusInEvent(QFocusEvent *ev).

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

Réimplémente : QWindow::focusOutEvent(QFocusEvent *ev).

[signal] void QQuickWindow::frameSwapped()

Ce signal est émis lorsqu'une image a été mise en file d'attente en vue de son affichage. Lorsque la synchronisation verticale est activée, le signal est émis au maximum une fois par intervalle de vsync dans une scène en animation continue.

Ce signal sera émis par le thread de rendu du graphe de scène.

QImage QQuickWindow::grabWindow()

Récupère le contenu de la fenêtre et le renvoie sous forme d'image.

Il est possible d'appeler la fonction `grabWindow()` lorsque la fenêtre n'est pas visible. Pour cela, il faut que la fenêtre soit de type ` created `, qu'elle ait une taille valide et qu'aucune autre instance de ` QQuickWindow ` ne soit en cours de rendu dans le même processus.

Remarque : lorsque cette fenêtre est utilisée en combinaison avec ` QQuickRenderControl`, cette fonction renvoie une image vide, sauf si le backend ` software ` est utilisé. En effet, lorsque la sortie est redirigée vers une ressource graphique gérée par l’application (telle qu’une texture) à l’aide de ` QQuickRenderControl ` et ` setRenderTarget()`, l’application est mieux à même de gérer et d’exécuter une éventuelle opération de relecture, puisqu’elle contrôle entièrement la ressource dès le départ.

Avertissement : l’appel de cette fonction entraînera des problèmes de performances.

Avertissement : cette fonction ne peut être appelée qu’à partir du thread de l’interface graphique.

[static, since 6.0] QSGRendererInterface::GraphicsApi QQuickWindow::graphicsApi()

Renvoie l'API graphique qui serait utilisée par le graphe de scène s'il était initialisé à ce moment-là.

La méthode standard pour interroger l’API utilisée par le graphe de scène consiste à utiliser ` QSGRendererInterface::graphicsApi()` une fois que le graphe de scène a été initialisé, par exemple lorsque le signal ` sceneGraphInitialized()` est émis ou après celui-ci. Dans ce cas, on obtient le résultat réel et exact, car on sait alors que tout a été initialisé correctement à l’aide de cette API graphique.

Ce n’est pas toujours pratique. Si l’application doit configurer des frameworks externes, ou si elle doit utiliser la fonction ` setGraphicsDevice()` d’une manière qui dépend de la logique de sélection d’API intégrée au graphe de scène, il n’est pas toujours possible de reporter ces opérations jusqu’à ce que le signal ` QQuickWindow ` soit rendu visible ou que la fonction ` QQuickRenderControl::initialize()` ait été appelée.

C’est pourquoi cette fonction statique est fournie en complément de ` setGraphicsApi()` : elle peut être appelée à tout moment, et son résultat reflète l’API que le graphe de scène choisirait s’il était initialisé au moment de l’appel.

Remarque : cette fonction statique est destinée à être appelée uniquement sur le thread principal (GUI). Pour interroger l’API lors du rendu, utilisez QSGRendererInterface, car cet objet réside sur le thread de rendu.

Remarque : cette fonction ne tient pas compte des backends du graphe de scène.

Cette fonction a été introduite dans Qt 6.0.

Voir également setGraphicsApi().

[since 6.0] QQuickGraphicsConfiguration QQuickWindow::graphicsConfiguration() const

Renvoie l'QQuickGraphicsConfiguration e passé à la fonction ` setGraphicsConfiguration()`, ou un objet construit par défaut dans le cas contraire.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi setGraphicsConfiguration().

[since 6.0] QQuickGraphicsDevice QQuickWindow::graphicsDevice() const

Renvoie l'QQuickGraphicsDevice e passé à la fonction setGraphicsDevice(), ou un objet construit par défaut dans le cas contraire

Cette fonction a été introduite dans Qt 6.0.

Voir aussi setGraphicsDevice().

const QQuickWindow::GraphicsStateInfo &QQuickWindow::graphicsStateInfo()

Renvoie une référence à une structure ` GraphicsStateInfo ` décrivant certains aspects de l'état interne du RHI, notamment l'état de la mise en mémoire tampon double ou triple du backend (comme les intégrations Vulkan ou Metal). Cela s'applique lorsque les API graphiques sous-jacentes sont Vulkan ou Metal, et que le code de rendu externe souhaite effectuer un double ou un triple buffering de ses propres ressources en constante évolution, telles que les tampons uniformes, afin d'éviter de bloquer le pipeline.

[static] bool QQuickWindow::hasDefaultAlphaBuffer()

Indique s'il faut utiliser la transparence alpha sur les fenêtres nouvellement créées.

Voir aussi setDefaultAlphaBuffer().

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

Réimplémente : QWindow::hideEvent(QHideEvent *ev).

QQmlIncubationController *QQuickWindow::incubationController() const

Renvoie un contrôleur d'incubation qui intercaler l'incubation entre les images de cette fenêtre. QQuickView installe automatiquement ce contrôleur pour vous ; sinon, vous devrez l'installer vous-même à l'aide de QQmlEngine::setIncubationController().

Le contrôleur appartient à la fenêtre et sera détruit lorsque celle-ci sera supprimée.

bool QQuickWindow::isPersistentGraphics() const

Indique si les ressources graphiques essentielles peuvent être libérées pendant la durée de vie de l'QQuickWindow.

Remarque : il s'agit d'une suggestion ; il n'est pas garanti qu'elle soit prise en compte.

Voir également setPersistentGraphics().

bool QQuickWindow::isPersistentSceneGraph() const

Indique si les nœuds et les ressources du graphe de scène peuvent être libérés pendant la durée de vie de cet objet ` QQuickWindow`.

Remarque : il s'agit d'une indication. Le moment et la manière dont cela se produit dépendent de l'implémentation.

bool QQuickWindow::isSceneGraphInitialized() const

Renvoie « true » si le graphe de scène a été initialisé ; sinon, renvoie « false ».

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

Réimplémente : QWindow::keyPressEvent(QKeyEvent *ev).

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

Réimplémente : QWindow::keyReleaseEvent(QKeyEvent *ev).

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

Réimplémente : QWindow::mouseDoubleClickEvent(QMouseEvent *ev).

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

Réimplémente : QWindow::mouseMoveEvent(QMouseEvent *ev).

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

Réimplémente : QWindow::mousePressEvent(QMouseEvent *ev).

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

Réimplémente : QWindow::mouseReleaseEvent(QMouseEvent *ev).

[slot] void QQuickWindow::releaseResources()

Cette fonction tente de libérer les ressources redondantes actuellement occupées par la scène QML.

L'appel de cette fonction demande au graphe de scène de libérer les ressources graphiques mises en cache, telles que les objets du pipeline graphique, les programmes de shaders ou les données d'image.

De plus, selon la boucle de rendu utilisée, cette fonction peut également entraîner la libération du graphe de scène et de toutes les ressources de rendu liées aux fenêtres. Si cela se produit, le signal « sceneGraphInvalidated() » sera émis, permettant aux utilisateurs de nettoyer leurs propres ressources graphiques. Les fonctions ` setPersistentGraphics()` et ` setPersistentSceneGraph()` peuvent être utilisées pour empêcher cela, si la gestion du nettoyage n’est pas réalisable dans l’application, au prix d’une utilisation plus importante de la mémoire.

Remarque : la libération des ressources graphiques mises en cache, telles que les pipelines graphiques ou les programmes de shaders, ne dépend pas des indications de persistance. La libération de ces ressources aura lieu quelles que soient les valeurs des indications de persistance des graphiques et du graphe de scène.

Remarque : cette fonction n’est pas liée à la fonction virtuelle ` QQuickItem::releaseResources()`.

Voir également sceneGraphInvalidated(), setPersistentGraphics() et setPersistentSceneGraph().

[since 6.0] QQuickRenderTarget QQuickWindow::renderTarget() const

Renvoie l’ QQuickRenderTarget e passé à la fonction ` setRenderTarget()`, ou un construit par défaut dans le cas contraire

Cette fonction a été introduite dans Qt 6.0.

Voir aussi setRenderTarget().

QSGRendererInterface *QQuickWindow::rendererInterface() const

Renvoie l'interface du moteur de rendu actuel. La valeur est toujours valide et n'est jamais nulle.

Remarque : cette fonction peut être appelée à tout moment après la construction de l’ QQuickWindow, même lorsque isSceneGraphInitialized() est encore à faux. Cependant, certaines fonctions de l’interface du moteur de rendu, en particulier QSGRendererInterface::getResource(), ne seront opérationnelles qu’une fois que le graphe de scène sera opérationnel. En revanche, les requêtes de backend, telles que QSGRendererInterface::graphicsApi() ou QSGRendererInterface::shaderType(), seront toujours opérationnelles.

Remarque : la propriété du pointeur renvoyé reste acquise à Qt. L'instance renvoyée peut être partagée ou non entre différentes instances de ` QQuickWindow `, selon le backend du graphe de scène utilisé. Par conséquent, les applications doivent interroger l'objet d'interface pour chaque ` QQuickWindow ` au lieu de réutiliser le pointeur déjà interrogé.

Voir également QSGRenderNode et QSGRendererInterface.

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

Réimplémente : QWindow::resizeEvent(QResizeEvent *ev).

[since 6.6] QRhi *QQuickWindow::rhi() const

Renvoie l'objet « QRhi » utilisé par cette fenêtre pour le rendu.

Disponible uniquement lorsque la fenêtre utilise l'API Qt 3D et les abstractions du langage de shading, ce qui signifie que le résultat est toujours nul lorsque l'on utilise l'adaptation « software ».

Le résultat n’est valide que lorsque le rendu a été initialisé, ce qui est indiqué par l’émission du signal ` sceneGraphInitialized()`. Avant ce moment, la valeur renvoyée est nulle. Avec une QQuickWindow à l’écran classique, l’initialisation du graphe de scène se produit généralement lorsque la fenêtre native est affichée (visible) pour la première fois. Lors de l'utilisation de ` QQuickRenderControl`, l'initialisation s'effectue lors de l'appel explicite à ` initialize()`.

En pratique, cette fonction est un raccourci permettant d’interroger l’ QRhi via ` QSGRendererInterface`.

Cette fonction a été introduite dans Qt 6.6.

[signal] void QQuickWindow::sceneGraphAboutToStop()

Ce signal est émis sur le thread de rendu lorsque le graphe de scène est sur le point d'arrêter le rendu. Cela se produit généralement parce que la fenêtre a été masquée.

Les applications peuvent utiliser ce signal pour libérer des ressources, mais doivent être prêtes à les réinstancier rapidement. Le graphe de scène et le contexte graphique ne sont pas libérés à ce moment-là.

Avertissement : ce signal est émis depuis le thread de rendu du graphe de scène. Si votre fonction de slot doit se terminer avant que l’exécution ne se poursuive, vous devez vous assurer que la connexion est directe (voir Qt::ConnectionType).

Avertissement : assurez-vous impérativement qu’un gestionnaire de signal pour `sceneGraphAboutToStop()` laisse le contexte graphique dans le même état que celui dans lequel il se trouvait lors de l’entrée dans le gestionnaire de signal. Ne pas respecter cette consigne peut entraîner un rendu incorrect de la scène.

Voir également sceneGraphInvalidated().

[static] QString QQuickWindow::sceneGraphBackend()

Renvoie le backend de scénographe Qt Quick demandé.

Remarque : la valeur renvoyée par cette fonction peut encore être obsolète à la suite d’appels ultérieurs à setSceneGraphBackend() tant que le premier QQuickWindow de l’application n’a pas été construit.

Remarque : la valeur ne reflète la valeur de la variable d'environnement QT_QUICK_BACKEND qu'une fois l'QQuickWindow construit.

Voir aussi setSceneGraphBackend().

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

Ce signal est émis lorsqu’une erreur « error » s’est produite lors de l’initialisation du graphe de scène.

Les applications doivent se connecter à ce signal si elles souhaitent gérer les erreurs, telles que les échecs de création de contexte graphique, de manière personnalisée. Lorsqu’aucun slot n’est connecté au signal, le comportement sera différent : Quick affichera l’ message, ou fera apparaître une boîte de message, puis mettra fin à l’application.

Ce signal sera émis depuis le thread de l'interface graphique.

[signal] void QQuickWindow::sceneGraphInitialized()

Ce signal est émis lorsque le graphe de scène a été initialisé.

Ce signal sera émis par le thread de rendu du graphe de scène.

[signal] void QQuickWindow::sceneGraphInvalidated()

Ce signal est émis lorsque le graphe de scène a été invalidé.

Ce signal implique que le contexte de rendu graphique utilisé a été invalidé et que toutes les ressources utilisateur liées à ce contexte doivent être libérées.

Lors du rendu avec OpenGL, l'QOpenGLContext de cette fenêtre sera liée lorsque cette fonction sera appelée. La seule exception concerne le cas où le contexte OpenGL natif a été détruit hors du contrôle de Qt, par exemple via EGL_CONTEXT_LOST.

Ce signal est émis par le thread de rendu de l’arborescence de scène.

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

La fonction ` job ` est programmée pour s'exécuter lorsque le rendu de cette fenêtre atteint l'stage` spécifiée.

Il s'agit d'une alternative pratique aux signaux équivalents de QQuickWindow pour les tâches « ponctuelles ».

La fenêtre prend en charge la gestion d'job et la supprimera une fois la tâche terminée.

Si le rendu est interrompu avant que job n’ait eu le temps de s’exécuter, la tâche sera exécutée puis supprimée dans le cadre du nettoyage de l’arbre de scène. Si la fenêtre n’est jamais affichée et qu’aucun rendu n’a lieu avant la destruction de QQuickWindow, toutes les tâches en attente seront détruites sans que leur méthode run() ne soit appelée.

Si le rendu s’effectue sur un autre thread, la tâche s’exécutera alors sur le thread de rendu.

Si ` stage ` est ` NoStage`, ` job ` sera exécutée dès que possible, dès que le thread de rendu ne sera pas occupé à rendre une image. Si la fenêtre n’est pas exposée et n’est pas rendable au moment où la tâche est soit postée, soit traitée, celle-ci est supprimée sans que la méthode `run()` ne soit exécutée. Si un moteur de rendu non multithread est utilisé, la méthode run() de la tâche est exécutée de manière synchrone. Lors du rendu avec OpenGL, le contexte OpenGL est remplacé par celui du moteur de rendu avant l’exécution de toute tâche, y compris les tâches de type « NoStage ».

Remarque : cette fonction ne déclenche pas le rendu ; les tâches ciblant une étape autre que « NoStage » seront mises en attente jusqu’à ce que le rendu soit déclenché ailleurs. Pour forcer l’exécution de la tâche plus tôt, appelez QQuickWindow::update() ;

Voir également beforeRendering(), afterRendering(), beforeSynchronizing(), afterSynchronizing(), frameSwapped() et sceneGraphInvalidated().

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

useAlpha Indique s'il faut utiliser la transparence alpha sur les fenêtres nouvellement créées.

Dans toute application devant créer des fenêtres translucides, il est nécessaire de définir cette option sur « true » avant de créer la première instance de ` QQuickWindow`. La valeur par défaut est « false ».

Voir également hasDefaultAlphaBuffer().

[static, since 6.0] void QQuickWindow::setGraphicsApi(QSGRendererInterface::GraphicsApi api)

Demande l'api graphique spécifiée.

Lorsque l’adaptation graphique intégrée par défaut est utilisée, api spécifie quelle API graphique (OpenGL, Vulkan, Metal ou Direct3D) le graphe de scène doit utiliser pour le rendu. De plus, le backend software est également intégré et peut être demandé en définissant api sur QSGRendererInterface::Software.

Contrairement à la fonction ` setSceneGraphBackend()`, qui ne peut être utilisée que pour demander un backend donné (fourni soit de manière intégrée, soit installé sous forme de plugins chargés dynamiquement), cette fonction s’appuie sur le concept de plus haut niveau des API graphiques. Elle couvre les backends fournis avec ` Qt Quick` et dispose donc de valeurs correspondantes dans l’énumération ` QSGRendererInterface::GraphicsApi `.

Lorsque cette fonction n’est pas appelée et que la variable d’environnement équivalente QSG_RHI_BACKEND n’est pas définie non plus, le graphe de scène choisit l’API graphique à utiliser en fonction de la plateforme.

Cette fonction revêt une importance particulière dans les applications qui ne sont préparées que pour le rendu via une API donnée. Par exemple, si l’application effectue un rendu natif via OpenGL ou Vulkan, elle devra s’assurer que Qt Quick effectue également le rendu via OpenGL ou Vulkan. Ces applications sont censées appeler cette fonction dès le début de leur fonction main().

Remarque : l’appel de cette fonction doit avoir lieu avant la construction de la première instance ` QQuickWindow ` dans l’application. L’API graphique ne peut plus être modifiée par la suite.

Remarque : lorsqu’elle est utilisée en combinaison avec ` QQuickRenderControl`, cette règle est assouplie : il est possible de changer d’API graphique, mais uniquement lorsque toutes les instances existantes de ` QQuickRenderControl ` et ` QQuickWindow ` ont été détruites.

Pour connaître l’API graphique utilisée par le graphe de scène pour le rendu, appelez ` QSGRendererInterface::graphicsApi()` après la méthode ` has initialized` du graphe de scène, ce qui se produit généralement soit lorsque la fenêtre devient visible pour la première fois, soit lorsque ` QQuickRenderControl::initialize()` est appelée.

Pour revenir au comportement par défaut, dans lequel le graphe de scène choisit une API graphique en fonction de la plateforme et d’autres conditions, définissez ` api ` sur ` QSGRendererInterface::Unknown`.

Cette fonction a été introduite dans Qt 6.0.

Voir également graphicsApi().

[since 6.0] void QQuickWindow::setGraphicsConfiguration(const QQuickGraphicsConfiguration &config)

Définit la configuration graphique de cette fenêtre. La variable ` config ` contient divers paramètres pouvant être pris en compte par le graphe de scène lors de l’initialisation des périphériques et contextes graphiques sous-jacents.

Cette configuration supplémentaire, qui spécifie par exemple quelles extensions de périphérique activer pour Vulkan, devient pertinente et essentielle lors de l’intégration de code de rendu graphique natif qui repose sur certaines extensions. Il en va de même lors de l’intégration avec des moteurs 3D ou VR externes, tels qu’OpenXR.

Remarque : la configuration est ignorée lors de l’adoption de périphériques graphiques existants via ` setGraphicsDevice()` car, dans ce cas, le graphe de scène ne contrôle pas la construction effective de ces objets.

QQuickGraphicsConfiguration Les instances sont implicitement partagées, copiables et peuvent être transmises par valeur.

Avertissement : la configuration d’un ` QQuickGraphicsConfiguration ` sur une ` QQuickWindow ` doit être effectuée suffisamment tôt, avant la première initialisation du graphe de scène pour cette fenêtre. Pour les fenêtres à l’écran, cela signifie que l’appel doit être effectué avant d’invoquer ` show()` sur ` QQuickWindow ` ou ` QQuickView`. Avec ` QQuickRenderControl `, la configuration doit être finalisée avant d’appeler ` initialize()`.

Cette fonction a été introduite dans Qt 6.0.

Voir également graphicsConfiguration().

[since 6.0] void QQuickWindow::setGraphicsDevice(const QQuickGraphicsDevice &device)

Définit les objets du périphérique graphique pour cette fenêtre. Le graphe de scène utilisera le périphérique existant, le périphérique physique et les autres objets spécifiés par ` device ` au lieu d’en créer de nouveaux.

Cette fonction est très souvent utilisée en combinaison avec ` QQuickRenderControl ` et ` setRenderTarget()`, afin de rediriger le rendu de ` Qt Quick ` vers une texture.

Un objet ` QQuickGraphicsDevice ` construit par défaut ne modifie en rien le comportement par défaut. Dès qu’un objet ` device ` créé via l’une des fonctions d’usine ` QQuickGraphicsDevice `, telles que ` QQuickGraphicsDevice::fromDeviceObjects()`, est transmis, et que le graphe de scène utilise une API graphique correspondante (dans l’exemple de `fromDeviceObjects()`, il s’agirait de Vulkan), le graphe de scène utilisera les objets de périphérique existants (tels que VkPhysicalDevice, VkDevice et l’index de la famille de files d’attente graphiques, dans le cas de Vulkan) encapsulés par QQuickGraphicsDevice. Cela permet d’utiliser le même périphérique, et donc de partager des ressources, telles que les tampons et les textures, entre Qt Quick et les moteurs de rendu natifs.

Avertissement : cette fonction ne peut être appelée qu’avant l’initialisation du graphe de scène et n’aura aucun effet si elle est appelée par la suite. En pratique, cela signifie généralement qu’il faut l’appeler juste avant ` QQuickRenderControl::initialize()`

À titre d’exemple, cette fois-ci avec Direct3D, l’utilisation typique devrait être la suivante :

// native graphics resources set up by a custom D3D rendering engine
ID3D11Device *device;
ID3D11DeviceContext *context;
ID3D11Texture2D *texture;
...
// now to redirect Qt Quick content into 'texture' we could do the following:
QQuickRenderControl *renderControl = new QQuickRenderControl;
QQuickWindow *window = new QQuickWindow(renderControl); // this window will never be shown on-screen
...
window->setGraphicsDevice(QQuickGraphicsDevice::fromDeviceAndContext(device, context));
renderControl->initialize();
window->setRenderTarget(QQuickRenderTarget::fromD3D11Texture(texture, textureSize);
...

L’aspect essentiel de l’utilisation de cette fonction est de s’assurer que les ressources ou les descripteurs de ressources, tels que ` texture ` dans l’exemple ci-dessus, sont visibles et utilisables à la fois par le moteur de rendu externe et par le moteur de rendu du graphe de scène. Cela nécessite d’utiliser le même périphérique graphique (ou, avec OpenGL, le même contexte OpenGL).

QQuickGraphicsDevice Les instances sont implicitement partagées, copiables et peuvent être transmises par valeur. Elles ne possèdent pas les objets natifs associés (tels que l’ID3D11Device dans l’exemple).

Remarque : l’utilisation de ` QQuickRenderControl ` n’implique pas toujours de devoir appeler cette fonction. Lorsqu’il n’est pas nécessaire d’adopter un périphérique ou un contexte existant, cette fonction ne doit pas être appelée, et le graphe de scène initialisera alors ses propres périphériques et contextes normalement, comme il le ferait avec une « QQuickWindow » à l’écran.

Cette fonction a été introduite dans Qt 6.0.

Voir également graphicsDevice(), QQuickRenderControl, setRenderTarget() et setGraphicsApi().

void QQuickWindow::setPersistentGraphics(bool persistent)

Détermine si les ressources graphiques (périphérique ou contexte graphique, chaîne d'échange, tampons, textures) doivent être conservées et ne peuvent être libérées avant la suppression de la dernière fenêtre, via la fonction ` persistent`. La valeur par défaut est `true`.

Lors de l’appel de ` releaseResources()` ou lorsque la fenêtre est masquée (plus précisément, lorsqu’elle n’est plus rendable), certaines boucles de rendu ont la possibilité de libérer toutes les ressources graphiques, et pas seulement celles mises en cache. Cela peut libérer temporairement de la mémoire, mais cela signifie également que le moteur de rendu devra procéder à une réinitialisation complète, potentiellement coûteuse, des ressources lorsque la fenêtre devra à nouveau être rendue.

Remarque : les règles déterminant quand une fenêtre n'est pas affichable dépendent de la plate-forme et du gestionnaire de fenêtres.

Remarque : toutes les ressources graphiques sont libérées lorsque le dernier objet ` QQuickWindow ` est supprimé, quel que soit ce paramètre.

Remarque : il s’agit d’une suggestion, et il n’est pas garanti qu’elle soit prise en compte.

Remarque : cette indication ne s’applique pas aux ressources mises en cache, dont la suppression puis la recréation ultérieure sont relativement peu coûteuses. Par conséquent, l’appel de ` releaseResources()` entraînera généralement leur libération, quelle que soit la valeur de cette indication.

Voir également isPersistentGraphics(), setPersistentSceneGraph(), sceneGraphInitialized(), sceneGraphInvalidated() et releaseResources().

void QQuickWindow::setPersistentSceneGraph(bool persistent)

Détermine si les nœuds et les ressources du graphe de scène sont « persistent ». « Persistent » signifie que les nœuds et les ressources ne peuvent pas être libérés. La valeur par défaut est « true ».

Lors de l’appel de la fonction releaseResources(), lorsque la fenêtre est masquée (plus précisément, lorsqu’elle n’est pas rendable), certaines boucles de rendu ont la possibilité de libérer les nœuds du graphe de scène et les ressources graphiques associées. Cela libère temporairement de la mémoire, mais implique également que le graphe de scène devra être reconstruit lors du prochain rendu de la fenêtre.

Remarque : les règles déterminant quand une fenêtre n’est pas rendable dépendent de la plate-forme et du gestionnaire de fenêtres.

Remarque : les nœudsdu graphe de scène et les ressources sont toujours libérés lorsque la dernière instance de ` QQuickWindow ` est supprimée, quel que soit ce paramètre.

Remarque : il s’agit d’une suggestion, dont la prise en compte n’est pas garantie.

Voir également isPersistentSceneGraph(), setPersistentGraphics(), sceneGraphInvalidated(), sceneGraphInitialized() et releaseResources().

[since 6.0] void QQuickWindow::setRenderTarget(const QQuickRenderTarget &target)

Définit la cible de rendu de cette fenêtre sur ` target`.

Un ` QQuickRenderTarget ` sert de descripteur opaque pour un objet natif pouvant être rendu, le plus souvent une texture 2D, ainsi que pour les métadonnées associées, telles que la taille en pixels.

Un ` QQuickRenderTarget ` construit par défaut implique qu’il n’y a pas de redirection. En revanche, un ` target` valide, créé via l’une des fonctions d’usine statiques ` QQuickRenderTarget `, permet la redirection du rendu de la scène ` Qt Quick ` : celle-ci ne ciblera plus les tampons de couleur de la surface associée à la fenêtre, mais plutôt les textures ou autres objets graphiques spécifiés dans ` target`.

Par exemple, en supposant que le graphe de scène utilise Vulkan pour le rendu, on peut rediriger sa sortie vers un ` VkImage`. Pour les API graphiques telles que Vulkan, la disposition de l’image doit également être fournie. Les instances ` QQuickRenderTarget ` sont implicitement partagées ; elles sont copiables et peuvent être transmises par valeur. Elles ne possèdent toutefois pas les objets natifs associés (tels que le `VkImage` dans l’exemple).

QQuickRenderTarget rt = QQuickRenderTarget::fromVulkanImage(vulkanImage, VK_IMAGE_LAYOUT_PREINITIALIZED, pixelSize);
quickWindow->setRenderTarget(rt);

Cette fonction est très souvent utilisée en combinaison avec ` QQuickRenderControl ` et un ` QQuickWindow` invisible, afin de rendre le contenu d’ Qt Quick dans une texture, sans créer de fenêtre native à l’écran pour ce ` QQuickWindow`.

Lorsque la cible souhaitée, ou les données associées, telles que la taille, changent, appelez cette fonction avec une nouvelle instance de ` QQuickRenderTarget`. La création d’instances de ` QQuickRenderTarget ` et l’appel de cette fonction sont peu coûteux en ressources, mais sachez que définir une nouvelle ` target ` avec un objet natif différent ou d’autres données peut entraîner des étapes d’initialisation potentiellement coûteuses lorsque le graphe de scène s’apprête à afficher l’image suivante. Ne modifiez donc la cible qu’en cas de nécessité.

Remarque : la fenêtre ne prend pas possession des objets natifs référencés dans target.

Remarque : il incombe à l’appelant de s’assurer que les objets natifs référencés dans ` target ` sont également valides pour le moteur de rendu du graphe de scène. Par exemple, avec Vulkan, Metal et Direct3D, cela implique que la texture ou l’image soit créée sur le même périphérique graphique que celui utilisé en interne par le graphe de scène. Par conséquent, lorsque des objets de texture créés sur un périphérique ou dans un contexte déjà existant sont impliqués, cette fonction est souvent utilisée en combinaison avec ` setGraphicsDevice()`.

Remarque : avec les API graphiques concernées, l’application doit prêter attention aux transitions de disposition d’image effectuées par le graphe de scène. Par exemple, une fois qu’un VkImage est associé au graphe de scène via l’appel de cette fonction, sa disposition passe à « VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL » lors du rendu d’une image.

Avertissement : cette fonction ne peut être appelée qu’à partir du thread chargé du rendu.

Cette fonction a été introduite dans Qt 6.0.

Voir également renderTarget(), QQuickRenderControl, setGraphicsDevice() et setGraphicsApi().

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

Demande un graphe de scène « Qt Quick » backend. Les backends peuvent être soit intégrés, soit installés sous forme de plugins chargés dynamiquement.

Remarque : l’appel de la fonction doit avoir lieu avant la construction du premier QQuickWindow dans l’application. Il ne peut pas être modifié par la suite.

Voir « Basculer entre les adaptations dans votre application » pour plus d’informations sur la liste des backends. Si ` backend ` n’est pas valide ou si une erreur se produit, la requête est ignorée.

Remarque : l’appel de cette fonction équivaut à définir les variables d’environnement ` QT_QUICK_BACKEND ` ou ` QMLSCENE_DEVICE `. Cependant, cette API est plus sûre à utiliser dans les applications qui lancent d’autres processus, car il n’est pas nécessaire de se soucier de l’héritage de l’environnement.

Voir aussi sceneGraphBackend().

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

Définit le type de rendu par défaut des éléments de type texte dans « Qt Quick » sur « renderType ».

Remarque : la définition du type d'affichage n'affectera que les éléments créés par la suite ; le type d'affichage des éléments existants ne sera pas modifié.

Voir aussi textRenderType().

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

Réimplémente : QWindow::showEvent(QShowEvent *ev).

[since 6.6] QRhiSwapChain *QQuickWindow::swapChain() const

Renvoie l'QRhiSwapChain utilisé par cette fenêtre, s'il y en a un.

Remarque : seules les fenêtres à l'écran gérées par l'une des boucles de rendu standard (telles que basic ou threaded) disposent d'une chaîne d'échange. Dans le cas contraire, la valeur renvoyée est nulle. Par exemple, le résultat est toujours nul lorsque la fenêtre est utilisée avec QQuickRenderControl.

Cette fonction a été introduite dans Qt 6.6.

[override virtual protected] void QQuickWindow::tabletEvent(QTabletEvent *event)

Réimplémente : QWindow::tabletEvent(QTabletEvent *ev).

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

Renvoie le type de rendu des éléments de type texte dans Qt Quick. La valeur par défaut est QQuickWindow::QtTextRendering.

Voir également setTextRenderType().

[slot] void QQuickWindow::update()

Planifie le rendu d'une nouvelle image par la fenêtre.

L'appel à `QQuickWindow::update()` diffère de celui à ` QQuickItem::update()` en ce sens qu'il déclenche toujours un rafraîchissement, qu'il y ait ou non des modifications dans le graphe de scène sous-jacent.

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

Réimplémente : QWindow::wheelEvent(QWheelEvent *ev).

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.