QSGGeometry Class
La classe QSGGeometry permet le stockage de bas niveau des primitives graphiques dans le graphe de scène d'Qt Quick . En savoir plus...
| En-tête : | #include <QSGGeometry> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Quick) target_link_libraries(mytarget PRIVATE Qt6::Quick) |
| qmake : | QT += quick |
Types publics
| struct | Attribute |
| struct | AttributeSet |
| struct | ColoredPoint2D |
| struct | Point2D |
| struct | TexturedPoint2D |
| enum | AttributeType { UnknownAttribute, PositionAttribute, ColorAttribute, TexCoordAttribute, TexCoord1Attribute, TexCoord2Attribute } |
| enum | DataPattern { AlwaysUploadPattern, DynamicPattern, StaticPattern, StreamPattern } |
| enum | DrawingMode { DrawPoints, DrawLines, DrawLineStrip, DrawTriangles, DrawTriangleStrip } |
| enum | Type { ByteType, UnsignedByteType, ShortType, UnsignedShortType, IntType, …, DoubleType } |
Fonctions publiques
| QSGGeometry(const QSGGeometry::AttributeSet &attributes, int vertexCount, int indexCount = 0, int indexType = UnsignedShortType) | |
| virtual | ~QSGGeometry() |
| void | allocate(int vertexCount, int indexCount = 0) |
| int | attributeCount() const |
| const QSGGeometry::Attribute * | attributes() const |
| unsigned int | drawingMode() const |
| int | indexCount() const |
| void * | indexData() |
| const void * | indexData() const |
| uint * | indexDataAsUInt() |
| const uint * | indexDataAsUInt() const |
| quint16 * | indexDataAsUShort() |
| const quint16 * | indexDataAsUShort() const |
| QSGGeometry::DataPattern | indexDataPattern() const |
| int | indexType() const |
| float | lineWidth() const |
| void | markIndexDataDirty() |
| void | markVertexDataDirty() |
| void | setDrawingMode(unsigned int mode) |
(since 6.10) void | setIndexCount(int count) |
| void | setIndexDataPattern(QSGGeometry::DataPattern p) |
| void | setLineWidth(float width) |
(since 6.10) void | setVertexCount(int count) |
| void | setVertexDataPattern(QSGGeometry::DataPattern p) |
| int | sizeOfIndex() const |
| int | sizeOfVertex() const |
| int | vertexCount() const |
| void * | vertexData() |
| const void * | vertexData() const |
| QSGGeometry::ColoredPoint2D * | vertexDataAsColoredPoint2D() |
| const QSGGeometry::ColoredPoint2D * | vertexDataAsColoredPoint2D() const |
| QSGGeometry::Point2D * | vertexDataAsPoint2D() |
| const QSGGeometry::Point2D * | vertexDataAsPoint2D() const |
| QSGGeometry::TexturedPoint2D * | vertexDataAsTexturedPoint2D() |
| const QSGGeometry::TexturedPoint2D * | vertexDataAsTexturedPoint2D() const |
| QSGGeometry::DataPattern | vertexDataPattern() const |
Membres publics statiques
| const QSGGeometry::AttributeSet & | defaultAttributes_ColoredPoint2D() |
| const QSGGeometry::AttributeSet & | defaultAttributes_Point2D() |
| const QSGGeometry::AttributeSet & | defaultAttributes_TexturedPoint2D() |
| void | updateColoredRectGeometry(QSGGeometry *g, const QRectF &rect) |
| void | updateRectGeometry(QSGGeometry *g, const QRectF &rect) |
| void | updateTexturedRectGeometry(QSGGeometry *g, const QRectF &rect, const QRectF &textureRect) |
Description détaillée
La classe QSGGeometry stocke la géométrie des primitives rendues avec le graphe de scène. Elle contient des données de sommets et, éventuellement, des données d'index. Le mode utilisé pour dessiner la géométrie, également appelé topologie de primitive, est spécifié à l'aide de la fonction setDrawingMode().
Les sommets peuvent être aussi simples que des points définis par des valeurs x et y, ou plus complexes, chaque sommet pouvant contenir une normale, des coordonnées de texture et une position 3D. L'QSGGeometry::AttributeSet est utilisé pour décrire la manière dont les données de sommets sont constituées. L’ensemble d’attributs ne peut être spécifié qu’au moment de la construction. La classe QSGGeometry fournit par défaut quelques attributs et ensembles d’attributs pratiques. La fonction defaultAttributes_Point2D() renvoie un ensemble d’attributs à utiliser pour les rectangles de couleur unie normaux, tandis que la fonction defaultAttributes_TexturedPoint2D renvoie les attributs à utiliser pour la géométrie 2D texturée. Les données de sommets sont stockées en interne sous la forme d’un tableau de sommets ( void * ) et sont accessibles via la fonction ` vertexData()`. Des accesseurs pratiques pour les ensembles d’attributs courants sont disponibles via ` vertexDataAsPoint2D()` et ` vertexDataAsTexturedPoint2D()`. L’allocation des données de sommets s’effectue en passant un nombre de sommets au constructeur ou en appelant ultérieurement la fonction ` allocate()`.
Le nombre de sommets et d’indices peut être modifié après la construction à l’aide de la méthode allocate() permettant de redimensionner le tampon de données. Cependant, la méthode allocate() nécessite la mise à jour de toutes les données de sommets et d’indices à chaque appel. Depuis Qt 6.10, les méthodes ` setVertexCount()` et ` setIndexCount()` permettent d'ajuster le nombre de sommets ou d'indices sans réallouer le tampon de données et ne nécessitent que la mise à jour des nouveaux sommets ou indices. Dans les deux cas, l'appelant doit marquer le nœud de géométrie comme « sale » (dirty), en appelant ` node->markDirty(QSGNode::DirtyGeometry)`, afin de s'assurer que le moteur de rendu ait la possibilité de mettre à jour ses tampons internes.
La QSGGeometry peut, de manière facultative, contenir des indices sous forme d’entiers non signés de 32 bits, de 16 bits ou de 8 bits. Le type d’indice doit être spécifié lors de la construction et ne peut pas être modifié.
Vous trouverez ci-dessous un extrait de code illustrant comment construire une géométrie composée de sommets de position et de couleur.
struct MyPoint2D {
float x;
float y;
float r;
float g;
float b;
float a;
void set(float x_, float y_, float r_, float g_, float b_, float a_) {
x = x_;
y = y_;
r = r_;
g = g_;
b = b_;
a = a_;
}
};
QSGGeometry::Attribute MyPoint2D_Attributes[] = {
QSGGeometry::Attribute::create(0, 2, FloatType, true),
QSGGeometry::Attribute::create(1, 4, FloatType, false)
};
QSGGeometry::AttributeSet MyPoint2D_AttributeSet = {
2,
sizeof(MyPoint2D),
MyPoint2D_Attributes
};
...
geometry = new QSGGeometry(MyPoint2D_AttributeSet, 2);
geometry->setDrawingMode(DrawLines);
MyPoint2D *vertices = static_cast<MyPoint2D *>(geometry->vertexData());
vertices[0].set(0, 0, 1, 0, 0, 1);
vertices[1].set(width(), height(), 0, 0, 1, 1);La QSGGeometry est un tampon logiciel et côté client en termes de rendu accéléré, car les tampons utilisés en graphisme 2D se composent généralement de nombreux petits tampons qui changent à chaque image et ne tirent aucun avantage à être chargés dans la mémoire graphique. Cependant, la classe `QSGGeometry` permet d’indiquer au moteur de rendu qu’un tampon doit être chargé à l’aide des fonctions ` setVertexDataPattern()` et ` setIndexDataPattern()`. Le respect ou non de cette indication dépend de l’implémentation.
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.
Voir également QSGGeometryNode et Graphique de scène - Géométrie personnalisée.
Documentation sur les types de membres
enum QSGGeometry::AttributeType
Cette énumération identifie plusieurs types d'attributs.
| Constante | Valeur | Description |
|---|---|---|
QSGGeometry::UnknownAttribute | 0 | Sans importance |
QSGGeometry::PositionAttribute | 1 | Position |
QSGGeometry::ColorAttribute | 2 | Couleur |
QSGGeometry::TexCoordAttribute | 3 | Coordonnée de texture |
QSGGeometry::TexCoord1Attribute | 4 | Coordonnée de texture 1 |
QSGGeometry::TexCoord2Attribute | 5 | Coordonnée de texture 2 |
enum QSGGeometry::DataPattern
L'énumération DataPattern sert à spécifier le modèle d'utilisation des données de sommets et d'indices dans un objet géométrique.
| Constante | Valeur | Description |
|---|---|---|
QSGGeometry::AlwaysUploadPattern | 0 | Les données sont toujours chargées. Cela signifie que l’utilisateur n’a pas besoin de marquer explicitement les données d’index et de sommets comme modifiées après les avoir modifiées. Il s’agit de la valeur par défaut. |
QSGGeometry::DynamicPattern | 2 | Les données sont modifiées à plusieurs reprises et dessinées de nombreuses fois. Il s'agit d'une recommandation susceptible d'améliorer les performances. Lorsque cette option est activée, l'utilisateur doit veiller à marquer les données comme modifiées après les avoir modifiées. |
QSGGeometry::StaticPattern | 3 | Les données sont modifiées une seule fois et dessinées à de nombreuses reprises. Il s'agit d'une suggestion susceptible d'améliorer les performances. Lorsque cette option est activée, l'utilisateur doit veiller à marquer les données comme « modifiées » après les avoir modifiées. |
QSGGeometry::StreamPattern | 1 | Les données sont modifiées à presque chaque affichage. Il s’agit d’une suggestion susceptible d’améliorer les performances. Lorsque cette option est activée, l’utilisateur doit veiller à marquer les données comme « sales » après les avoir modifiées. |
enum QSGGeometry::DrawingMode
Spécifie le mode de dessin, également appelé « topologie des primitives ».
Remarque : à partir de Qt 6, le graphe de scène n'expose que les topologies prises en charge par l'ensemble des API graphiques 3D compatibles. Par conséquent, les valeurs « DrawLineLoop » et « DrawTriangleFan » ne sont plus prises en charge lors de l'exécution dans Qt 6, même si les valeurs de l'énumération elles-mêmes sont toujours présentes.
| Constante | Valeur |
|---|---|
QSGGeometry::DrawPoints | 0x0000 |
QSGGeometry::DrawLines | 0x0001 |
QSGGeometry::DrawLineStrip | 0x0003 |
QSGGeometry::DrawTriangles | 0x0004 |
QSGGeometry::DrawTriangleStrip | 0x0005 |
enum QSGGeometry::Type
Spécifie le type de composant dans les données de sommets.
| Constante | Valeur | Description |
|---|---|---|
QSGGeometry::ByteType | 0x1400 | |
QSGGeometry::UnsignedByteType | 0x1401 | |
QSGGeometry::ShortType | 0x1402 | |
QSGGeometry::UnsignedShortType | 0x1403 | |
QSGGeometry::IntType | 0x1404 | |
QSGGeometry::UnsignedIntType | 0x1405 | |
QSGGeometry::FloatType | 0x1406 | |
QSGGeometry::Bytes2Type | 0x1407 | Ajouté dans Qt 5.14. |
QSGGeometry::Bytes3Type | 0x1408 | Ajouté dans Qt 5.14. |
QSGGeometry::Bytes4Type | 0x1409 | Ajouté dans Qt 5.14. |
QSGGeometry::DoubleType | 0x140A | Ajouté dans Qt 5.14. |
Documentation sur les fonctions membres
QSGGeometry::QSGGeometry(const QSGGeometry::AttributeSet &attributes, int vertexCount, int indexCount = 0, int indexType = UnsignedShortType)
Crée un objet géométrique à partir de attributes.
L'objet alloue de l'espace pour les sommets de vertexCount en fonction de la taille cumulée dans attributes et pour indexCount.
indexType peut être UnsignedShortType ou UnsignedIntType. La prise en charge de cette dernière dépend de l’implémentation de l’API graphique utilisée lors de l’exécution et peut ne pas toujours être disponible.
Les objets de géométrie sont créés par défaut avec l'DrawTriangleStrip comme mode de dessin.
Remarque : l’objet ` attributes ` et les objets ` Attribute ` auxquels il fait référence doivent rester valides pendant toute la durée de vie de l’objet `QSGGeometry`. L’objet `QSGGeometry` stocke une référence à ` attributes ` et ne supprime pas les objets ` Attribute `.
[virtual noexcept] QSGGeometry::~QSGGeometry()
Supprime l'objet géométrique ainsi que les données de sommets et d'indices qu'il a allouées.
void QSGGeometry::allocate(int vertexCount, int indexCount = 0)
Redimensionne les données de sommets et d'indices de cet objet géométrique pour les adapter à vertexCount sommets et indexCount indices, puis définit le nombre de sommets et d'indices en conséquence.
Utilisez ` setVertexCount()` ou ` setIndexCount()` pour modifier le nombre de sommets ou d’indices sans appeler à nouveau `allocate()`.
Les données de sommets et d’indices seront invalidées après cet appel et l’appelant doit marquer le nœud de géométrie associé comme modifié, en appelant ` node->markDirty(QSGNode::DirtyGeometry)`, afin de garantir que le moteur de rendu ait la possibilité de mettre à jour ses tampons internes.
Voir également setVertexCount() et setIndexCount().
int QSGGeometry::attributeCount() const
Renvoie le nombre d'attributs contenus dans l'ensemble d'attributs utilisé par cette géométrie.
const QSGGeometry::Attribute *QSGGeometry::attributes() const
Renvoie un tableau contenant les attributs de cette géométrie. La taille du tableau est indiquée par la fonction ` attributeCount()`.
[static] const QSGGeometry::AttributeSet &QSGGeometry::defaultAttributes_ColoredPoint2D()
Fonction pratique qui renvoie les attributs à utiliser pour un tracé 2D coloré par sommet.
[static] const QSGGeometry::AttributeSet &QSGGeometry::defaultAttributes_Point2D()
Fonction pratique qui renvoie les attributs à utiliser pour le tracé en couleur unie en 2D.
[static] const QSGGeometry::AttributeSet &QSGGeometry::defaultAttributes_TexturedPoint2D()
Fonction pratique qui renvoie les attributs à utiliser pour le dessin 2D texturé.
unsigned int QSGGeometry::drawingMode() const
Renvoie le mode de dessin de cette géométrie.
La valeur par défaut est ` DrawTriangleStrip`.
Voir aussi setDrawingMode().
int QSGGeometry::indexCount() const
Renvoie le nombre d'indices traités lors du rendu de l'objet géométrique.
Voir également setIndexCount().
void *QSGGeometry::indexData()
Renvoie un pointeur vers les données d'index brutes de cet objet géométrique.
Voir également indexDataAsUShort() et indexDataAsUInt().
const void *QSGGeometry::indexData() const
Renvoie un pointeur vers les données d'index brutes de cet objet géométrique.
Voir également indexDataAsUShort() et indexDataAsUInt().
uint *QSGGeometry::indexDataAsUInt()
Fonction pratique permettant d'accéder aux données d'index sous la forme d'un tableau modifiable d'entiers non signés de 32 bits.
const uint *QSGGeometry::indexDataAsUInt() const
Fonction pratique permettant d'accéder aux données d'index sous la forme d'un tableau immuable d'entiers non signés de 32 bits.
quint16 *QSGGeometry::indexDataAsUShort()
Fonction pratique permettant d'accéder aux données d'index sous la forme d'un tableau modifiable d'entiers non signés de 16 bits.
const quint16 *QSGGeometry::indexDataAsUShort() const
Fonction pratique permettant d'accéder aux données d'index sous la forme d'un tableau immuable d'entiers non signés de 16 bits.
QSGGeometry::DataPattern QSGGeometry::indexDataPattern() const
Renvoie le modèle d'utilisation des indices dans cette géométrie. Le modèle par défaut est AlwaysUploadPattern.
Voir également setIndexDataPattern().
int QSGGeometry::indexType() const
Renvoie le type primitif utilisé pour les indices dans cet objet géométrique.
float QSGGeometry::lineWidth() const
Récupère la largeur actuelle de la ligne ou du point à utiliser pour cette géométrie. Cette propriété ne s'applique à la largeur de ligne que lorsque l'drawingMode est définie sur DrawLines ou DrawLineStrip. Lorsqu'elle est prise en charge, elle s'applique également à la taille du point lorsque l'drawingMode est définie sur DrawPoints.
La valeur par défaut est 1.0
Remarque : la prise en charge du dessin de points et de lignes peut être limitée lors de l’exécution, selon la plateforme et l’API graphique. Par exemple, certaines API ne prennent pas en charge les sprites de points ; il n’est donc pas possible de définir une taille autre que 1.
Remarque : la largeur de ` 1.0 ` est toujours prise en charge.
Voir également setLineWidth() et drawingMode().
void QSGGeometry::markIndexDataDirty()
Notez que les sommets de cette géométrie ont changé et doivent être réimportés.
Cette fonction n'a d'effet que lorsque le modèle d'utilisation des sommets est « StaticData » et que le moteur de rendu chargé de rendre cette géométrie la charge dans des objets de tampon de sommets (VBO).
void QSGGeometry::markVertexDataDirty()
Notez que les sommets de cette géométrie ont changé et doivent être réimportés.
Cette fonction n'a d'effet que lorsque le modèle d'utilisation des sommets est « StaticData » et que le moteur de rendu chargé de rendre cette géométrie la charge dans des objets de tampon de sommets (VBO).
void QSGGeometry::setDrawingMode(unsigned int mode)
Définit l'mode à utiliser pour le tracé de cette géométrie.
La valeur par défaut est ` QSGGeometry::DrawTriangleStrip`.
Voir également drawingMode() et DrawingMode.
[since 6.10] void QSGGeometry::setIndexCount(int count)
Définit le nombre d'indices à traiter à chaque rendu de l'objet géométrique.
La fonction ` count ` n'est pas validée et il incombe à l'utilisateur de s'assurer que seules des valeurs comprises entre zéro et le nombre d'indices alloués sont spécifiées.
Les données de sommets et d’indices ne sont pas invalidées après cet appel, mais l’appelant doit marquer le nœud de géométrie comme « sale » (dirty), en appelant ` node->markDirty(QSGNode::DirtyGeometry)`, afin de garantir que le moteur de rendu ait la possibilité de mettre à jour ses tampons internes.
Cette fonction a été introduite dans Qt 6.10.
Voir également indexCount().
void QSGGeometry::setIndexDataPattern(QSGGeometry::DataPattern p)
Définit le modèle d'utilisation des index sur « p ».
La valeur par défaut est ` AlwaysUploadPattern`. Lorsque la valeur définie diffère de la valeur par défaut, l'utilisateur doit appeler la fonction ` markIndexDataDirty()` après avoir modifié les données de l'index, en plus d'appeler la fonction ` QSGNode::markDirty()` avec ` QSGNode::DirtyGeometry`.
Voir également indexDataPattern().
void QSGGeometry::setLineWidth(float width)
Définit la largeur de ligne ou la taille de point à utiliser pour cette géométrie sur width. Cette propriété s'applique uniquement à la largeur de ligne lorsque l'drawingMode est DrawLines ou DrawLineStrip. Lorsqu'elle est prise en charge, elle s'applique également à la taille des points lorsque l'drawingMode est DrawPoints.
Remarque : la prise en charge du dessin de points et de lignes peut être limitée lors de l’exécution, selon la plate-forme et l’API graphique. Par exemple, certaines API ne prennent pas en charge les sprites de points ; il n’est donc pas possible de définir une taille autre que 1.
Remarque : la largeur de ` 1.0 ` est toujours prise en charge.
Voir également lineWidth() et drawingMode().
[since 6.10] void QSGGeometry::setVertexCount(int count)
Définit le nombre de sommets à afficher.
La fonction ` count ` n'effectue aucune validation ; il incombe à l'utilisateur de s'assurer que seules des valeurs comprises entre zéro et le nombre de sommets alloués sont spécifiées.
Les données de sommets ne sont pas invalidées après cet appel, mais l'appelant doit marquer le nœud de géométrie comme « sale » ( node->markDirty(QSGNode::DirtyGeometry)), afin de garantir que le moteur de rendu ait la possibilité de mettre à jour ses tampons internes.
Cette fonction a été introduite dans Qt 6.10.
Voir également vertexCount().
void QSGGeometry::setVertexDataPattern(QSGGeometry::DataPattern p)
Définit le modèle d'utilisation des sommets sur « p ».
La valeur par défaut est ` AlwaysUploadPattern`. Lorsque la valeur définie diffère de la valeur par défaut, l'utilisateur doit appeler la fonction ` markVertexDataDirty()` après avoir modifié les données des sommets, en plus d'appeler la fonction ` QSGNode::markDirty()` avec ` QSGNode::DirtyGeometry`.
Voir également vertexDataPattern().
int QSGGeometry::sizeOfIndex() const
Renvoie la taille en octets du type d'index.
Cette valeur est soit 2 lorsque le type d'index est UnsignedShortType, soit 4 lorsque le type d'index est UnsignedIntType.
int QSGGeometry::sizeOfVertex() const
Renvoie la taille, en octets, d'un sommet.
Cette valeur provient des attributs.
[static] void QSGGeometry::updateColoredRectGeometry(QSGGeometry *g, const QRectF &rect)
Met à jour l'g de géométrie avec les coordonnées contenues dans rect.
La fonction suppose que l'objet géométrique contient une seule bande de triangles composée de QSGGeometry::ColoredPoint2D sommets
[static] void QSGGeometry::updateRectGeometry(QSGGeometry *g, const QRectF &rect)
Met à jour la géométrie g avec les coordonnées contenues dans rect.
La fonction suppose que l’objet géométrique contient une seule bande triangulaire composée de sommets QSGGeometry::Point2D.
[static] void QSGGeometry::updateTexturedRectGeometry(QSGGeometry *g, const QRectF &rect, const QRectF &textureRect)
Met à jour la géométrie g avec les coordonnées disponibles à l'adresse rect et les coordonnées de texture issues de textureRect.
textureRect Les coordonnées doivent être normalisées.
g On suppose qu’il s’agit d’une bande de triangles composée de quatre sommets de type QSGGeometry::TexturedPoint2D.
int QSGGeometry::vertexCount() const
Renvoie le nombre de sommets pouvant être affichés ou, si des indices sont utilisés, le nombre de sommets accessibles via ces indices.
Voir également setVertexCount().
void *QSGGeometry::vertexData()
Renvoie un pointeur vers les données brutes des sommets de cet objet géométrique.
Voir également vertexDataAsPoint2D() et vertexDataAsTexturedPoint2D().
const void *QSGGeometry::vertexData() const
Renvoie un pointeur vers les données brutes des sommets de cet objet géométrique.
Voir également vertexDataAsPoint2D() et vertexDataAsTexturedPoint2D().
QSGGeometry::ColoredPoint2D *QSGGeometry::vertexDataAsColoredPoint2D()
Fonction pratique permettant d'accéder aux données des sommets sous la forme d'un tableau modifiable de type ` QSGGeometry::ColoredPoint2D`.
const QSGGeometry::ColoredPoint2D *QSGGeometry::vertexDataAsColoredPoint2D() const
Fonction pratique permettant d'accéder aux données des sommets sous la forme d'un tableau immuable de type ` QSGGeometry::ColoredPoint2D`.
QSGGeometry::Point2D *QSGGeometry::vertexDataAsPoint2D()
Fonction pratique permettant d'accéder aux données des sommets sous la forme d'un tableau modifiable de type ` QSGGeometry::Point2D`.
const QSGGeometry::Point2D *QSGGeometry::vertexDataAsPoint2D() const
Fonction pratique permettant d'accéder aux données des sommets sous la forme d'un tableau immuable de type ` QSGGeometry::Point2D`.
QSGGeometry::TexturedPoint2D *QSGGeometry::vertexDataAsTexturedPoint2D()
Fonction pratique permettant d'accéder aux données des sommets sous la forme d'un tableau modifiable de type ` QSGGeometry::TexturedPoint2D`.
const QSGGeometry::TexturedPoint2D *QSGGeometry::vertexDataAsTexturedPoint2D() const
Fonction pratique permettant d'accéder aux données des sommets sous la forme d'un tableau immuable de type QSGGeometry::TexturedPoint2D.
QSGGeometry::DataPattern QSGGeometry::vertexDataPattern() const
Renvoie le modèle d'utilisation des sommets de cette géométrie. Le modèle par défaut est « AlwaysUploadPattern ».
Voir également setVertexDataPattern().
© 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.