- 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'attaquer à la méthode createNode qui va nous permettre de créer une noteen cliquant sur le bouton dans notre interface graphique.
00:00:08 :Pour l'instant, on a juste le print, donc on va l'enlever.Et à la place, on va utiliser un QInputDialog.Ce QInputDialog me permet d'ouvrir une fenêtre dans laquelle je vais pouvoir taper du texte.
00:00:19 :Le texte que je vais rentrer va être le titre de la note.Ce QInputDialog est contenu lui aussi à l'intérieur de QtWidgets.On va faire QtWidgets.QInputDialog.
00:00:30 :Et on a une méthode à l'intérieur de QInputDialog qui s'appelle getText,qui va me permettre de récupérer du texte.La première chose qu'il veut, c'est le parent.
00:00:39 :Le parent va être tout simplement self, c'est notre fenêtre que l'on crée.Vous voyez ici dans le petit pop-up qui apparaît, on a marqué parent et il attend un QWidget.
00:00:47 :Ça tombe bien puisqu'ici, on a un QWidget.Ça va fonctionner.Ensuite, il va attendre le titre.Le titre, on va mettre tout simplement ajouter une note.
00:00:56 :Et le texte qui va être affiché juste en dessous du titre sur notre boîte de dialogue.Là, on va mettre tout simplement titre avec deux points qui va indiquer qu'on s'attend à avoir le titre à l'intérieur de la boîte de dialogue.
00:01:07 :On va récupérer le résultat de ce QInputDialog dans deux variables.La première, ça va être le titre.Et la deuxième, ça va être une variable que je vais appeler résultat.
00:01:16 :Pourquoi résultat ?Puisqu'en fait, si on valide le QInputDialog, le résultat va être égal à 1 ou True.Et si on ferme le dialogue, donc si on ne veut pas ajouter de note et qu'on clique sur la petite croix pour fermer le dialogue,résultat va être égal à 0 ou False.
00:01:31 :Ça va nous permettre de savoir si on veut continuer ou pas.Puisqu'on pourrait très bien cliquer sur Create Note et finalement se raviser et dire que je ne veux pas créer de note.
00:01:39 :Donc, il faut gérer ce cas de figure.Ce qu'on va faire, c'est vérifier si résultat et titre sont vrais.Puisque titre aussi, il faut que ça contienne quelque chose.
00:01:47 :Car si on clique sur Create Note et que finalement on ne rentre rien dans le titre et qu'on appuie sur OK,on va avoir une variable title ici qui va être une chaîne de caractère vide.
00:01:57 :Donc, il faut vérifier à la fois si le résultat est vrai, donc si cette variable ici est vraie,et si title contient quelque chose.Pour ça, on va pouvoir faire une structure conditionnelle et dire tout simplement if résultat and title.
00:02:09 :On n'a pas besoin de mettre égal, égal à True.On pourrait faire ça comme ceci, mais c'est un peu redondant.Puisque si résultat est égal à True, la structure conditionnelle sera vérifiée.
00:02:18 :On met le and ici, puisqu'on veut qu'à la fois résultat et title soient vrais.Si on mettait or, par exemple, il suffirait que l'un ou l'autre soit vrai pour qu'on passe dans la structure conditionnelle.
00:02:27 :Nous, on veut vérifier que les deux sont vrais, donc on utilise le mot and ici.Donc, si les deux sont vrais, si on a au moins quelque chose dans title et si résultat est égal à True,on va continuer et on va ajouter une note.
00:02:37 :Pour ça, je vais devoir importer depuis mon API la note qu'on a créée ici, donc la classe Note qui est ici.Je vais devoir l'importer dans mon script, puisqu'on va créer une instance de cette classe.
00:02:49 :Tout en haut ici, après l'import de la librairie PySide, je vais importer la classe Note qui se trouve dans package.api.note.Et on va importer depuis ce package Note la classe Note.
00:03:01 :Ça va nous permettre de créer une instance de notre note directement ici, à l'intérieur de notre structure conditionnelle.On va faire une note et on va dire que cette note, son titre, s'est égale à title.
00:03:12 :Title ici, c'est le paramètre qu'on a défini ici dans la méthode init, title, et on lui passe en argument title,donc le title qu'on va récupérer avec le QInputDialog.
00:03:23 :Ça peut être un peu mélangeant si vous voulez utiliser des noms de variables différents pour ne pas avoir title qui est écrit partout.Si on veut mettre par exemple titre à la place, donc si on met un nom de variable en français, vous allez voir que ça va être peut-être un peu plus clair.
00:03:36 :Donc titre ici, si titre est vrai on continue, et ensuite on passe en argument ici titre au paramètre title.Donc ça, ça va nous permettre de créer une note. Pour l'instant on ne met aucun contenu dans la note,
00:03:46 :donc par défaut on va avoir un contenu qui va être vide.C'est pour ça que dans la méthode init ici, on avait mis une chaîne de caractère vide pour pouvoir créer une note par défaut qui n'a pas de contenu.
00:03:55 :On ne passe rien au UUID, puisqu'ici on veut que le UUID soit généré automatiquement grâce à cette fonction.Donc la note va être créée dans cette instance, et on va pouvoir ensuite la sauvegarder sur le disque,puisque pour l'instant c'est juste une instance, et nous on veut sauvegarder la note sur le disque.
00:04:11 :Donc on va utiliser notre méthode save qui va nous permettre de sauvegarder la note.Donc ça c'est vraiment le côté API, vous voyez qu'ici on fait juste utiliser notre API à l'intérieur de notre interface graphique.
00:04:20 :Mais on n'a aucun morceau de code ici, toutes les fonctions de notre API se retrouvent à l'intérieur de notre fichier note ici.On n'a rien dans l'interface graphique, on fait juste appeler notre API.
00:04:31 :Donc ensuite ce qu'on va faire c'est qu'on va créer un ListWidgetItem.Un ListWidgetItem c'est tout simplement un item qu'on peut ajouter à l'intérieur de notre ListWidget.
00:04:40 :Donc on va faire lw-item, donc ça c'est le nom de ma variable, et ça va être égal à un QtWidget.qListWidgetItem.Donc ça c'est un élément que je vais pouvoir ajouter à l'intérieur de ma liste.
00:04:52 :Qu'est-ce qu'on va lui passer comme texte ? Et bien tout simplement le titre de notre note.Donc là on pourrait mettre titre ou même directement note.title.
00:05:00 :Donc là c'est à vous de voir, soit vous préférez passer directement l'attribut de l'instance de notre note,ou soit on passe la variable titre, dans les deux cas c'est la même chose.
00:05:08 :Puisque là on passe le titre à notre instance donc ça va être exactement la même chose.Et ensuite on va après ça faire une petite manipulation qui va nous permettre de récupérer l'instance de la notequand on va cliquer sur le ListWidgetItem.
00:05:20 :Donc ce que je vais faire c'est que ce ListWidgetItem c'est un objet Python, donc je peux lui associer un attribut.Donc l'attribut je vais faire ListWidgetItem.note, donc je vais créer un attribut que j'appelle note sur ce ListWidgetItem,
00:05:31 :et je vais dire qu'il est égal à notre instance de note.Comme ça quand on va récupérer le ListWidgetItem qui est sélectionné,quand on va vouloir afficher le contenu de la note, on va pouvoir récupérer cet attribut note qui va contenir notre instance.
00:05:43 :Donc ça va être très pratique, comme ça on va pouvoir récupérer directement notre instance qui va avoir le contenu, etc.Donc ce que je vais faire ensuite pour terminer c'est ajouter ce ListWidgetItem à l'intérieur de mon ListWidget.
00:05:55 :Donc pour ça on fait self.ListWidget.note et on va ajouter un item avec la méthode addItem.Donc attention de ne pas mettre de S ici, c'est vraiment au singulier puisqu'on ajoute un seul item ici.
00:06:05 :Qu'est-ce que je veux ajouter comme item ? Et bien tout simplement ma variable ici ListWidgetItem.Donc normalement c'est tout bon, on va vérifier si ça fonctionne.
00:06:13 :Là j'ai écrit tout le code d'un coup, c'est pas forcément la meilleure façon de faire.Généralement on essaie d'écrire une ou deux lignes de code et de les tester au fur et à mesure pour ne pas risquer d'avoir plein d'erreurs d'un coup.
00:06:21 :Donc là normalement ça doit être bon et on va tester notre application en cliquant sur la petite flèche ici pour lancer l'application.Donc on a bien le chargement des notes depuis le disque, pour l'instant on n'a aucune note donc il n'y a rien qui est affiché ici.
00:06:33 :On va cliquer sur le bouton Create Note.On a bien notre boîte de texte qui apparaît ici avec le titre Ajouter une note et le texte Titre qui apparaît ici.
00:06:41 :Donc je vais mettre note de test par exemple.Donc ça c'est notre boîte de texte qui va être récupérée dans la variable titre qu'on avait ici dans notre code.
00:06:50 :Donc je vais retourner sur mon application et on va appuyer sur OK.Donc si on appuie sur Cancel ou qu'on clique sur la petite croix ici, notre variable Résultat va être égale à False et on ne va pas ajouter la note.
00:07:08 :Donc j'appuie sur OK et là vous voyez qu'on a bien notre note qui est ajoutée dans le ListWidgetItem.Et si on va voir dans notre Finder, on voit qu'on a bien une note qui a été créée.
00:07:17 :Donc à l'intérieur de mon dossier Notes ici.Je vais m'assurer qu'on a bien le bon titre de la note.Donc je vais faire Open With TextEdit et je retrouve bien ici le bon titre de la note que je viens de créer.
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.