Gestion du clique sur le TreeView
Exclusif Premium
Débloquez votre potentiel ! ✨
Cette session fait partie de notre programme Premium exclusif
+100h de formations exclusives
+180 exercices de code avancés
+100h de mentorats en réécriture
20 projets guidés pas à pas
Mentorats groupés hebdomadaires
Support individuel avec nos mentors
Prêt à passer au niveau supérieur ?
Découvrez tous les avantages Premium et transformez votre apprentissage dès aujourd'hui!
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte00:00:00 :Dans cette partie, on va gérer le clic sur le TreeView pour afficher en conséquence le bon dossier dans le ListView.Donc la première chose qu'on va faire, c'est faire la connexion ici dans notre méthode SetUpConnections.
00:00:12 :Donc on va dire que quand notre TreeView est cliqué, donc avec le signal CLICKED,et bien on va connecter ce signal à une méthode qui pour l'instant n'existe pas mais qu'on va créer tout de suite,qu'on va appeler TreeViewClicked tout simplement.
00:00:24 :Donc je vais aller la créer ici tout en bas, donc TreeViewClicked.Et donc si pour l'instant je fais juste un print test, je lance mon application,et vous allez voir qu'à chaque fois qu'on va cliquer sur un fichier ou un dossier,à l'intérieur du TreeView, on va avoir le test qui va s'afficher.
00:00:40 :Donc ce qu'on va faire ici, c'est récupérer automatiquement un paramètre qui est le QModelIndexqui va nous être passé automatiquement par ce signal.Donc là, plutôt que de printer un test, vous allez voir, je vais printer index.
00:00:52 :Il y a certains signaux comme ça qui automatiquement nous donnent des informations.Donc c'est le cas de ce signal, le signal clicked.Quand on clique sur le TreeView, on a automatiquement le QModelIndex qui correspond au dossierou au fichier sur lequel on a cliqué qui nous est retourné.
00:01:06 :Donc si je relance l'application avec le print de index ici,vous allez voir qu'à chaque fois on va avoir un QModelIndex qui s'affiche,un QModelIndex différent donc en fonction du dossier ou du fichier sur lequel je clique.
00:01:18 :Donc ce QModelIndex, on va pouvoir l'utiliser pour changer notre affichage ici dans le ListView.La première chose qu'on va faire, c'est vérifier si on clique sur un dossier ou un fichier.
00:01:28 :Puisque par exemple, si je vais dans le dossier Movies,donc si je clique sur le dossier Movies, logiquement je veux afficher le contenu du dossier Movies ici dans mon ListView.
00:01:40 :Par contre, si je clique sur un fichier, si je clique sur ce fichier MP4 par exemple,je ne veux pas afficher le contenu du fichier puisque ça c'est juste un fichier,donc il n'y a plus d'arborescence en dessous.
00:01:49 :Donc ce que je veux faire si je clique sur un fichier, c'est afficher tout le contenu du dossier parent de ce fichier.Donc si je clique sur simplevideo.mp4 ici, ce que je veux afficher à droite dans mon ListView,
00:02:00 :en fait c'est le contenu du dossier parent, donc du dossier Movies.Donc ce qu'on va faire, c'est qu'on va vérifier si quand on clique sur quelque chose ici, c'est un dossier ou non.
00:02:09 :Si c'est un dossier, on affiche tout simplement ce que contient le dossier dans notre ListView.Et si jamais c'est un fichier, on va récupérer le dossier parent du fichier sur lequel on a cliquéet on va afficher le contenu de ce dossier.
00:02:20 :Donc la première chose qu'on va faire ici, c'est cette vérification.Donc on va faire if self.model, donc là encore on passe par notre modèle,pour vérifier si le QModelIndex est un dossier.
00:02:30 :Donc on va utiliser la méthode isDear et on va lui donner notre QModelIndex comme ceci,pour vérifier si ce QModelIndex qui est contenu à l'intérieur de mon modèle est un dossier ou non.
00:02:40 :Donc si c'est un dossier, je vais tout simplement sur mon ListView faire un setRootIndex de mon index.Par contre, si je fais un else, si ce n'est pas le cas, si ce n'est pas un dossier,et bien on va tout simplement faire la même méthode, donc self.listview.setRootIndex,
00:02:57 :mais cette fois-ci on va aller récupérer le parent de notre QModelIndex.Puisque si on est dans le else ici, ça veut dire qu'on a cliqué sur un fichier,et donc comme je vous l'ai dit il y a quelques instants,on veut récupérer le dossier parent du fichier sur lequel on a cliqué.
00:03:10 :Donc on va tout simplement faire index.parent pour récupérer le dossier parent.Donc si je relance tout ça, et que cette fois-ci je clique ici sur mon dossier,vous voyez qu'automatiquement on a le modèle qui est mis à jour,et on a le contenu de mon dossier User sur lequel je viens de cliquer.
00:03:24 :Si je vais à mon tour dans le dossier tbh ici, je me retrouve avec le contenu de ce dossier,et on va aller essayer de cliquer sur le fichier directement.
00:03:32 :Donc si je clique sur Simple Video ici, automatiquement vous voyez qu'on a le dossier qui est affiché,et non pas le contenu de la vidéo, puisque comme je vous le disais, la vidéo n'a plus d'arborescence.
00:03:43 :Donc nous ce qu'on veut c'est récupérer le contenu du dossier parent.Donc si je clique sur Movies, ça va faire la même chose, on va avoir le contenu de Movies,et si je clique sur un fichier à l'intérieur de Movies, on a toujours le contenu du dossier.
00:03:54 :Si par contre je clique sur quelque chose d'autre, donc par exemple ici les dossiers,et bien là on va avoir le contenu de chaque dossier qui va s'afficher ici à droite.
00:04:02 :Donc voilà pour cette méthode TreeViewClicked, donc on a déjà une bonne synchronisation entre les deux,et dans les prochaines parties on va continuer avec cette fois-ci les signaux qui vont être connectés sur notre ListView,donc c'est-à-dire que quand on va cliquer ou double-cliquer sur un fichier ou un dossier dans le ListView,
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.