- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Dans cette partie, on va s'occuper de la méthode qui nous permet de supprimer la note qui est sélectionnée.On va modifier cette méthode ici, deleteSelectedNotes.
00:00:08 :La première chose qu'on va faire, c'est de récupérer la note qui est sélectionnée.Pour ça, on va utiliser la méthode SelectedItems.SelectedItems va nous retourner tous les éléments qui sont sélectionnés dans notre liste.
00:00:22 :Vous remarquez que c'est au pluriel, donc on a un S ici,donc ça va nous retourner une liste qui contient tous les éléments sélectionnés.Nous, pour l'instant, on ne peut sélectionner qu'une note à la fois,donc il va falloir récupérer uniquement le premier élément dans cette liste.
00:00:35 :Je vais récupérer tout ça dans une variable que je vais appeler SelectedItems,donc là encore avec un S,et je vais faire une petite structure conditionnelle pour vérifier si j'ai bien un item de sélectionné.
00:00:45 :Donc si je n'ai aucun élément de sélectionné, ça ne sert à rien de continuer,et on va tout simplement sortir de la méthode.Donc je vais dire if NotSelectedItems,donc si je n'ai aucun élément de sélectionné, cette liste-là sera vide,et donc une liste vide c'est false,donc if NotSelectedItems, on va tout simplement retourner false.
00:01:03 :Si ce n'est pas le cas, donc si on a au moins une note de sélectionnée,on va continuer ici, et on va récupérer l'élément sélectionné dans une variableque je vais appeler SelectedItems, cette fois sans S.
00:01:12 :Donc ça, ça va être égal à notre liste SelectedItems,et on va récupérer le premier élément de la liste en mettant crochet 0 ici.Donc comme ça, si on a un élément de sélectionné,on va le récupérer à l'intérieur de cette variable.
00:01:23 :On va ensuite supprimer la note,donc la note, on va récupérer son instance.Son instance, c'est quoi ?Et bien c'est SelectedItems.not,puisque quand on a ajouté ici, dans notre ListWidget, la note,vous vous souvenez, on a dit que ListWidgetItems.not était égal à notre instance.
00:01:39 :Donc c'est-à-dire qu'on a un attribut note ici sur notre ListWidgetItemqui contient l'instance.Donc quand je récupère mes éléments sélectionnés ici avec SelectedItems,je vais récupérer mes objets ListWidgetItem,et je vais donc pouvoir accéder à cet attributqui correspond à l'instance de ma note.
00:01:55 :Pour la supprimer, on va utiliser la méthode Deletequi est disponible dans notre API.On l'a créée ici, Delete, qui va me permettre de supprimer la note.
00:02:04 :Donc je retourne dans mon MainWindow ici,et je vais appeler cette méthode Delete.Ensuite, on va également récupérer le résultat de cette méthode,puisque quand on supprime la note,si vous vous souvenez bien, on avait fait une vérification icipour vérifier si la suppression avait bien fonctionné.
00:02:18 :Donc on va récupérer ça dans une variable que je vais appeler résultat.Et si résultat est vrai, c'est-à-dire que la note a été correctement supprimée.
00:02:26 :Donc je vais dire que si résultat, donc if résultat,eh bien on va enlever la note de l'interface graphique,puisque pour l'instant on l'a supprimée sur le disque avec la méthode Delete,mais elle est encore dans notre interface.
00:02:38 :Donc il va falloir l'enlever du ListWidget si jamais la suppression est réussie.Si ça ne marche pas, eh bien on va tout simplement ne rien faire,on va laisser la note dans le ListWidget.
00:02:48 :On pourrait aussi mettre un message d'erreur qui ditque la note n'a pas réussi à être supprimée.Pour l'instant on va juste faire un if résultat iciet supprimer la note si ça a fonctionné,et on ne va pas gérer le cas de figure où ça ne fonctionne pas,
00:03:00 :puisque c'est quand même assez rare.Donc je vais enlever un item avec self.lwnote,donc là encore on agit sur notre ListWidget,et on va utiliser la méthode TakeItem.
00:03:10 :Alors TakeItem, ça va utiliser, vous voyez ici, un Integer.Donc on a marqué row.int.Donc row en fait c'est la rangée,donc il va nous demander quelle rangée on veut enlever dans notre ListWidget.
00:03:22 :Donc je pourrais mettre par exemple 0,mais là dans ce cas-ci ça va toujours enlever la première note.Nous ce qu'on veut c'est récupérer la rangée de l'élément qui est sélectionné.
00:03:30 :Alors c'est un petit peu alambiqué, vous allez voir,puisque personnellement j'aimerais bien avoir quelque chose comme SelectedItem.row,donc une méthode row qui me permette de récupérer la rangée de l'item.
00:03:40 :Mais ça ne marche pas comme ça, c'est un peu plus alambiqué,je trouve ça vraiment assez mal codé la façon dont ils ont fait ça dans PySide.
00:03:46 :On va devoir passer par la ListWidget,donc faire self.ListWidget.notes.rowpour récupérer la rangée de l'item qu'on va lui indiquer ici.Donc c'est un petit peu compliqué,en fait on passe par la ListWidget et on lui dit retourne-moi la rangée de cet item.
00:04:00 :Donc là l'item par exemple, si c'est la troisième note dans la liste,ça va nous retourner l'index 2,puisque là encore on commence à compter à partir de 0,donc la troisième note aura un indice de 2.
00:04:09 :Donc la troisième note aura une rangée qui va être égale à 2.Donc comme ça on va récupérer la rangée de l'item que l'on veut supprimer,et avec la méthode takeItem on va lui passer cette rangée,donc là dans ce cas-ci ça va être la rangée 0,puisqu'on n'a qu'un seul élément dans notre liste,
00:04:25 :on n'a qu'une seule note,et on va supprimer cet item de notre interface graphique.Donc on va essayer tout ça,on va cliquer sur Launch ici.
00:04:33 :Donc là on a deux notes,c'est vrai que j'en avais créé une autre,donc par exemple si je sélectionne cette note ici,et que j'appuie sur la touche Delete de mon clavier,normalement ça devrait la supprimer à la fois sur le disque,et à l'intérieur de mon liste widget.
00:04:45 :Donc je teste, et ça a fonctionné,vous voyez qu'on a correctement réussi à supprimer la note,et je vais retourner voir à l'intérieur de mon dossier ici,et le fichier JSON a bien disparu.
00:04:55 :Donc on va vérifier simplement que c'est bien la bonne note qu'on a supprimé,donc je vais faire un clic droit sur ce fichier JSON pour l'ouvrir dans TextEdit,et normalement on devrait se retrouver avec l'autre note.
00:05:05 :Donc l'autre note c'est celle qui reste à l'intérieur de ma liste.Je vais essayer de supprimer cette liste ici,et normalement on devrait voir en temps réel la note qui est supprimée de mon dossier.
00:05:14 :Donc ça fonctionne, on peut maintenant créer des notes,donc créer par exemple une note de test,une autre note, vous voyez qu'elle s'ajoute automatiquement dans mon dossier ici,et si je les sélectionne et que j'appuie sur Delete,ça va les supprimer à la fois dans l'interface graphique,et dans mon dossier ici.
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.