Surface3DNode QML Type
Décrit l'utilisation du nœud « Graphique de surface 3D ». En savoir plus...
| Import Statement: | import QtGraphs |
| Inherits: |
- Liste de tous les membres, y compris les membres hérités
- Surface3DNode fait partie des types QML 3D d'Qt Graphs .
Propriétés
- aspectRatio : real
- axisX : Value3DAxis
- axisY : Value3DAxis
- axisZ : Value3DAxis
- customItemList : list<Custom3DItem>
- flipHorizontalGrid : bool
- gridLineType : Graphs3D.GridLineType
- horizontalAspectRatio : real
- labelMargin : real
- locale : locale
- margin : real
- optimizationHint : Graphs3D.OptimizationHint
- polar : bool
- queriedGraphPosition : vector3d
- radialLabelOffset : real
- selectedElement : Graphs3D.ElementType
- selectedSeries : Surface3DSeries
- selectionMode : Graphs3D.SelectionMode
- seriesList : list<Surface3DSeries>
- theme : GraphsTheme
Signaux
- axisXChanged(ValueAxis3D axis)
- axisYChanged(ValueAxis3D axis)
- axisZChanged(ValueAxis3D axis)
- flipHorizontalGridChanged(bool flip)
- selectedSeriesChanged(Surface3DSeries series)
Méthodes
- qsizetype addCustomItem(Custom3DItem item)
- void addSeries(Surface3DSeries series)
- void clearSelection()
- void doPicking(QPoint point)
- void doRayPicking(QVector3D origin, QVector3D direction)
- bool hasSeries(Abstract3DSeries series)
- void releaseCustomItem(Custom3DItem item)
- void removeCustomItem(Custom3DItem item)
- void removeCustomItemAt(vector3d position)
- void removeCustomItems()
- void removeSeries(Surface3DSeries series)
- Abstract3DAxis selectedAxis()
- Custom3DItem selectedCustomItem()
- qsizetype selectedCustomItemIndex()
- int selectedLabelIndex()
Description détaillée
Ce type permet aux développeurs d'afficher un nœud de graphe de surface en 3D à l'aide de Qt Quick.
Vous devrez importer le module Qt Graphs pour utiliser ce type :
import QtGraphsVous pourrez ensuite utiliser Surface3DNode dans vos fichiers QML :
import QtQuick
import QtGraphs
View3D {
width: 640
height: 480
Surface3DNode {
width: parent.width
height: parent.height
Surface3DSeries {
itemLabelFormat: "Pop density at (@xLabel N, @zLabel E): @yLabel"
ItemModelSurfaceDataProxy {
itemModel: dataModel
// Mapping model roles to surface series rows, columns, and values.
rowRole: "longitude"
columnRole: "latitude"
yPosRole: "pop_density"
}
}
onTapped: {
// Disable the default input handler
unsetDefaultTapHandler()
// Implement own custom event handler
console.log("Custom tap event handler")
}
}
ListModel {
id: dataModel
ListElement{ longitude: "20"; latitude: "10"; pop_density: "4.75"; }
ListElement{ longitude: "21"; latitude: "10"; pop_density: "3.00"; }
ListElement{ longitude: "22"; latitude: "10"; pop_density: "1.24"; }
ListElement{ longitude: "23"; latitude: "10"; pop_density: "2.53"; }
ListElement{ longitude: "20"; latitude: "11"; pop_density: "2.55"; }
ListElement{ longitude: "21"; latitude: "11"; pop_density: "2.03"; }
ListElement{ longitude: "22"; latitude: "11"; pop_density: "3.46"; }
ListElement{ longitude: "23"; latitude: "11"; pop_density: "5.12"; }
ListElement{ longitude: "20"; latitude: "12"; pop_density: "1.37"; }
ListElement{ longitude: "21"; latitude: "12"; pop_density: "2.98"; }
ListElement{ longitude: "22"; latitude: "12"; pop_density: "3.33"; }
ListElement{ longitude: "23"; latitude: "12"; pop_density: "3.23"; }
ListElement{ longitude: "20"; latitude: "13"; pop_density: "4.34"; }
ListElement{ longitude: "21"; latitude: "13"; pop_density: "3.54"; }
ListElement{ longitude: "22"; latitude: "13"; pop_density: "1.65"; }
ListElement{ longitude: "23"; latitude: "13"; pop_density: "2.67"; }
}
}Voir également les classes C++ pour la 3D:Surface3DSeries, ItemModelSurfaceDataProxy, Bars3DNode, Scatter3DNode et Qt Graphs .
Documentation sur les propriétés
aspectRatio : real
Rapport d'échelle du graphique entre l'axe le plus long sur le plan horizontal et l'axe des y. La valeur par défaut est 2.0.
Remarque : n'a aucun effet sur ` Bars3D`.
Voir également horizontalAspectRatio.
axisX : Value3DAxis
L'axe x actif.
Si aucun axe n'est spécifié, un axe temporaire par défaut, sans étiquettes et dont la plage s'ajuste automatiquement, est créé. Cet axe temporaire est supprimé si un autre axe est explicitement défini avec la même orientation.
axisY : Value3DAxis
L'axe y actif.
Si aucun axe n'est spécifié, un axe temporaire par défaut, sans étiquettes et dont la plage s'ajuste automatiquement, est créé. Cet axe temporaire est supprimé si un autre axe est explicitement défini avec la même orientation.
axisZ : Value3DAxis
L'axe Z actif.
Si aucun axe n'est spécifié, un axe temporaire par défaut, sans étiquette et dont la plage s'ajuste automatiquement, est créé. Cet axe temporaire est supprimé si un autre axe est explicitement défini avec la même orientation.
customItemList : list<Custom3DItem>
La liste des éléments « Custom3DItem » ajoutés au graphe. Le graphe prend possession des éléments ajoutés.
flipHorizontalGrid : bool
Dans certains cas d'utilisation, la grille de l'axe horizontal est en grande partie recouverte par la surface ; il peut donc être plus pratique d'afficher cette grille au-dessus du graphique plutôt qu'en dessous. Un cas d'utilisation typique est l'affichage de spectrogrammes en 2D utilisant une projection orthographique avec une vue de dessus.
Si ` false`, la grille et les étiquettes de l'axe horizontal sont dessinées sur l'arrière-plan horizontal du graphique. Si ` true`, la grille et les étiquettes de l'axe horizontal sont dessinées du côté opposé à l'arrière-plan horizontal du graphique. La valeur par défaut est ` false`.
gridLineType : Graphs3D.GridLineType
Détermine si le type des lignes de la grille est « Graphs3D.GridLineType.Shader » ou « Graphs3D.GridLineType.Geometry ».
Cette valeur s'applique à toutes les lignes de la grille.
Voir également Graphs3D.GridLineType.
horizontalAspectRatio : real
Rapport d'échelle entre l'axe des x et l'axe des z. La valeur « 0.0 » indique une mise à l'échelle automatique en fonction des plages des axes. La valeur par défaut est « 0.0 ».
Remarque : n'a aucun effet sur ` Bars3DNode`, qui gère la mise à l'échelle sur le plan horizontal via les propriétés ` barThickness ` et ` barSpacing `. Les graphiques polaires ignorent également cette propriété.
Voir également aspectRatio, polar, Bars3DNode::barThickness et Bars3DNode::barSpacing.
labelMargin : real
Cette propriété définit la marge pour le positionnement des étiquettes d'axe.
Les valeurs négatives placent les étiquettes à l'intérieur de la zone de tracé, tandis que les valeurs positives les placent à l'extérieur de celle-ci. La rotation automatique des étiquettes est désactivée lorsque la valeur est négative. La valeur par défaut est 0.1
Voir également QAbstract3DAxis::labelAutoAngle.
locale : locale
Définit les paramètres régionaux utilisés pour le formatage des différentes étiquettes numériques. La valeur par défaut est la locale "C".
Voir également Value3DAxis::labelFormat.
margin : real
Valeur absolue utilisée pour définir l'espace laissé entre le bord de la zone de tracé du graphique et le bord de l'arrière-plan du graphique.
Si la valeur de la marge est négative, les marges sont déterminées automatiquement et peuvent varier en fonction de la taille des éléments de la série et du type de graphique. La valeur est interprétée comme une fraction de l'étendue de l'axe des y si les proportions du graphique n'ont pas été modifiées par rapport aux valeurs par défaut. La valeur par défaut est -1.0.
Remarque : le fait de définir une marge inférieure à celle déterminée automatiquement pour un graphique de nuages de points peut entraîner un chevauchement des éléments situés aux bords du graphique avec l’arrière-plan de celui-ci.
Remarque : sur les graphiques en nuage de points et les graphiques de surface, si la marge est petite par rapport à la taille des étiquettes d’axe, les positions des étiquettes situées aux extrémités des axes sont ajustées pour éviter tout chevauchement avec les étiquettes des axes voisins.
optimizationHint : Graphs3D.OptimizationHint
Indique si le mode par défaut ou le mode hérité est utilisé pour l'optimisation du rendu.
Le mode par défaut utilise le rendu instancié et offre l’ensemble complet des fonctionnalités avec les meilleures performances sur la plupart des systèmes. Le mode statique optimise le rendu du graphique et est idéal pour les grands ensembles de données immuables. Il est plus lent en cas de modifications dynamiques des données et de rotations d’éléments. La sélection n’étant pas optimisée, il n’est pas recommandé d’utiliser le mode statique avec des ensembles de données volumineux. Le mode hérité effectue le rendu de tous les éléments du graphe individuellement, sans instanciation. Il ne doit être utilisé que si le mode par défaut ne fonctionne pas, c’est-à-dire si le système cible ne prend pas en charge l’instanciation. La valeur par défaut est « Default ».
Remarque : dans certains environnements, les graphiques volumineux utilisant l’optimisation statique peuvent ne pas s’afficher, car tous les éléments sont rendus à l’aide d’un seul appel de dessin, et les différents pilotes graphiques prennent en charge des nombres maximaux de sommets par appel variables. Ce problème se pose principalement sur les plateformes 32 bits et OpenGL ES2. Pour contourner ce problème, choisissez un maillage d’élément avec un faible nombre de sommets ou utilisez le maillage de points.
Voir également Abstract3DSeries::mesh et Graphs3D.OptimizationHint.
polar : bool
Si true, les axes horizontaux sont remplacés par des axes polaires. L'axe x devient l'axe angulaire et l'axe z devient l'axe radial. Le mode polaire n'est pas disponible pour les graphiques à barres.
La valeur par défaut est false.
Voir également radialLabelOffset.
queriedGraphPosition : vector3d [read-only]
Cette propriété en lecture seule contient les dernières valeurs de position du graphique le long de chaque axe, interrogées à l'aide de la méthode ` Scene3D::graphPositionQuery`. Les valeurs sont normalisées pour s'inscrire dans l'intervalle [-1, 1]. Si la position interrogée se trouvait en dehors des limites du graphique, les valeurs ne refléteront pas la position réelle, mais correspondront plutôt à une position indéfinie située en dehors de l'intervalle [-1, 1]. La valeur restera indéfinie jusqu'à ce qu'une requête soit effectuée.
Il n’existe pas de coordonnée 3D unique et correcte correspondant à une position particulière à l’écran ; par souci de cohérence, les requêtes sont donc toujours effectuées par rapport aux côtés intérieurs d’un cadre invisible entourant le graphique.
Remarque : les graphiquesà barres ne permettent d’interroger la position du graphique qu’au niveau du plancher du graphique ; ainsi, la valeur y est toujours nulle pour les graphiques à barres et les requêtes valides ne peuvent être effectuées qu’aux positions à l’écran qui contiennent le plancher du graphique.
Voir également Scene3D::graphPositionQuery.
radialLabelOffset : real
Cette propriété spécifie le décalage horizontal normalisé des étiquettes de l'axe polaire radial. La valeur 0.0 indique que les étiquettes doivent être tracées à côté de la ligne de grille de l'axe angulaire correspondant à l'angle 0. La valeur 1.0 indique que les étiquettes sont tracées à leur emplacement habituel, au bord de l'arrière-plan du graphique. Cette propriété est ignorée si la valeur de la propriété « polar » est false. La valeur par défaut est 1.0.
Voir également polar.
selectedElement : Graphs3D.ElementType [read-only]
L'élément sélectionné dans le graphe.
Cette propriété permet de récupérer le type de l'élément sélectionné. Ce type reste valide jusqu'à ce qu'une nouvelle sélection soit effectuée dans le graphique et que le signal « selectedElementChanged » soit émis.
Ce signal peut être utilisé, par exemple, pour implémenter une gestion personnalisée des entrées, comme le montre l'exemple « Axis Handling ».
Voir également selectedLabelIndex(), selectedAxis(), selectedCustomItemIndex(), selectedCustomItem(), Bars3DNode::selectedSeries, Scatter3DNode::selectedSeries, Scene3D::selectionQueryPosition et Graphs3D.ElementType.
selectedSeries : Surface3DSeries [read-only]
La série sélectionnée ou la valeur null. Si l'selectionMode e dispose du drapeau « MultiSeries » activé, cette propriété contient la série à laquelle appartient le point sélectionné.
selectionMode : Graphs3D.SelectionMode
Mode de sélection actif dans le graphique. L'une des valeurs de l'énumération graphs3d.selectionflag.
seriesList : list<Surface3DSeries> [default]
Cette propriété contient les séries du graphique. Par défaut, cette propriété contient une liste vide. Pour définir les séries, utilisez la fonction ` addSeries()` ou définissez-les en tant qu'éléments enfants du graphique.
theme : GraphsTheme
Le thème actif du graphique.
Voir également GraphsTheme.
Documentation Signal
axisXChanged(ValueAxis3D axis)
Ce signal est émis lorsque axisX devient axis.
Remarque : le gestionnaire correspondant est onAxisXChanged.
axisYChanged(ValueAxis3D axis)
Ce signal est émis lorsque axisY devient axis.
Remarque : le gestionnaire correspondant est onAxisYChanged.
axisZChanged(ValueAxis3D axis)
Ce signal est émis lorsque axisZ devient axis.
Remarque : le gestionnaire correspondant est onAxisZChanged.
flipHorizontalGridChanged(bool flip)
Ce signal est émis lorsque flipHorizontalGrid devient flip.
Remarque : le gestionnaire correspondant est onFlipHorizontalGridChanged.
selectedSeriesChanged(Surface3DSeries series)
Ce signal est émis lorsque selectedSeries devient series.
Remarque : le gestionnaire correspondant est onSelectedSeriesChanged.
Documentation des méthodes
qsizetype addCustomItem(Custom3DItem item)
Ajoute un objet ` Custom3DItem ` item au graphe. Le graphe prend en charge l'élément ajouté.
Renvoie l’index de l’élément ajouté si l’ajout a réussi, -1 si l’on tente d’ajouter un élément nul, et l’index de l’élément si l’on tente d’ajouter un élément déjà présent.
Voir également removeCustomItems(), removeCustomItem() et removeCustomItemAt().
void addSeries(Surface3DSeries series)
Ajoute l'series au graphe.
Voir aussi GraphsNode::hasSeries().
void clearSelection()
Efface la sélection de toutes les séries associées.
void doPicking(QPoint point)
Effectue une sélection à l'aide des coordonnées de la vue issues de point sur les éléments du graphique, en choisissant le premier élément touché. Le traitement par défaut des entrées effectue cette opération à la réception de l'événement onTapped.
Voir également selectedElement.
void doRayPicking(QVector3D origin, QVector3D direction)
Effectue une recherche en commençant par origin et en direction sur les éléments du graphe, en sélectionnant le premier élément trouvé.
Voir également selectedElement.
bool hasSeries(Abstract3DSeries series)
Indique si l'series e a déjà été ajouté au graphe.
void releaseCustomItem(Custom3DItem item)
Récupère la propriété de item et supprime l'item e du graphe.
Remarque : si le même élément est rajouté au graphe, le fichier de texture doit être redéfini.
Voir aussi Custom3DItem::textureFile.
void removeCustomItem(Custom3DItem item)
Supprime l'item e personnalisée. Supprime les ressources qui lui sont allouées.
void removeCustomItemAt(vector3d position)
Supprime tous les éléments personnalisés disponibles à l'adresse position. Supprime les ressources qui leur sont allouées.
void removeCustomItems()
Supprime tous les éléments personnalisés. Supprime les ressources qui leur sont allouées.
void removeSeries(Surface3DSeries series)
Supprime l'series e du graphe.
Voir également la fonction « GraphsNode::hasSeries() ».
Abstract3DAxis selectedAxis()
Permet d'obtenir l'axe sélectionné après réception d'un signal « selectedElementChanged » avec n'importe quel type d'étiquette. La sélection reste valable jusqu'au prochain signal « selectedElementChanged ».
Renvoie l'axe sélectionné, ou null.
Voir également selectedElement.
Custom3DItem selectedCustomItem()
Permet de récupérer l'élément personnalisé sélectionné après la réception d'un signal « selectedElementChanged » de type « ElementType.CustomItem ». La propriété de l'élément reste celle du graphe. La sélection reste valable jusqu'au prochain signal « selectedElementChanged ».
Renvoie l’élément personnalisé sélectionné, ou null.
Voir également selectedElement.
qsizetype selectedCustomItemIndex()
Permet d'interroger l'index de l'élément personnalisé sélectionné après réception d'un signal « selectedElementChanged » de type « ElementType.CustomItem ». La sélection reste valide jusqu'au prochain signal « selectedElementChanged ».
Renvoie l’index de l’élément personnalisé sélectionné, ou -1.
Voir également selectedElement.
int selectedLabelIndex()
Permet d'interroger l'index de l'étiquette sélectionnée après réception d'un signal « selectedElementChanged » (sélection d'étiquette), quel que soit le type d'étiquette. La sélection reste valide jusqu'au prochain signal « selectedElementChanged » (désélection d'étiquette).
Renvoie l'index de l'étiquette sélectionnée, ou -1.
Voir également selectedElement.
© 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.