Modele de tutoriel

Nous obtenons l`index de modèle qui correspond à la sélection en appelant treeView-> selectionModel ()-> currentIndex () et nous obtenons la chaîne du champ à l`aide de l`index du modèle. Ensuite, nous calculons simplement le hierarchyLevel de l`élément. Les éléments de niveau supérieur n`ont pas de parents et la méthode parent () retournera un QModelIndex () construit par défaut. C`est pourquoi nous utilisons la méthode parent () pour itérer au niveau supérieur tout en comptant les étapes exécutées pendant l`itération. Le nombre de lignes et de colonnes est fourni par MyModel:: rowCount () et MyModel:: columnCount (). Lorsque la vue doit connaître le texte de la cellule, elle appelle la méthode MyModel::d ATA (). Les informations de ligne et de colonne sont spécifiées avec l`index de paramètre et le rôle est défini sur QT::D isplayRole. D`autres rôles sont abordés dans la section suivante. Dans notre exemple, les données qui doivent être affichées sont générées. Dans une application réelle, MyModel aurait un membre appelé MyData, qui sert de cible pour toutes les opérations de lecture et d`écriture.

Nous voulons présenter un vrai arbre. Nous avons enveloppé nos données dans les exemples ci-dessus afin de faire un modèle. Cette fois, nous utilisons Qstandartemmodel, qui est un conteneur pour les données hiérarchiques qui implémente également QAbstractItemModel. Pour afficher un arbre, Qstandartemmodel doit être rempli avec Qstandartems, qui sont en mesure de contenir toutes les propriétés standard d`éléments tels que le texte, les polices, les cases à cocher ou les pinceaux. QAbstractTableModel nécessite l`implémentation de trois méthodes abstraites. Le modèle de sélection (comme illustré ci-dessus) peut être récupéré, mais il peut également être défini avec QAbstractItemView:: setSelectionModel. C`est ainsi qu`il est possible d`avoir 3 classes de vue avec des sélections synchronisées car une seule instance d`un modèle de sélection est utilisée. Pour partager un modèle de sélection entre 3 vues, utilisez selectionModel () et affectez le résultat à la deuxième et troisième classe d`affichage avec setSelectionModel ().

La programmation modèle/vue est très largement couverte dans la documentation de Qt mais aussi dans plusieurs bons livres. Nous allons ouvrir l`un des exemples de modèles et l`Explorer en détail. Essayons un modèle de biologie: la prédation de moutons de loup, un modèle de population de prédateur-proie. L`éditeur de modèle nous permet de construire des modèles simples directement dans l`interface utilisateur graphique (GUI). Pour les modèles plus complexes, vous aurez besoin d`apprendre à écrire des fichiers SDF, et consultez les tutoriels sur la construction d`un robot. Mais pour l`instant, nous pouvons faire tout droit dans le GUI gazebo! Comme en mode simulation, la barre d`outils principale dans l`éditeur de modèle inclut des outils pour interagir avec les objets de la scène (voir le didacticiel de l`interface utilisateur). INSERT: l`onglet Insertion permet d`ajouter de nouvelles pièces (liens et modèles) à l`éditeur de modèles. Il y a trois sections. Certains des dossiers dans les modèles d`échantillon ont des dossiers à l`intérieur d`eux étiquetés “(non vérifiées)”.