- 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 gérer le dépôt des images sur notre interface puisque dans lapartie précédente vous avez vu quand on lâchait le clic les chemins vers les images ne s'ajoutaientpas automatiquement dans le listewidget. Donc ça il va falloir le gérer nous-mêmes et heureusement
00:00:13 :puisqu'on va pouvoir faire plusieurs vérifications en surchargeant la méthode dropEvent. Donc cetteméthode c'est dropEvent. Là encore on va récupérer l'événement en premier paramètre donc je laisse
00:00:25 :ici un paramètre que j'appelle event et la première chose que l'on va faire c'est donc d'accepter quel'on dépose des choses à l'intérieur de l'interface. Donc pour ça on va faire la même chose que dans
00:00:34 :le dragEnterEvent on va faire un event.accept donc ça va permettre d'accepter le drop. Si onfait pas ça en fait on va quand même pouvoir récupérer les fichiers et les déposer dansl'interface mais vous pouvez essayer en fait si vous enlevez cette ligne de code après vous allezvoir que les fichiers vont retourner dans l'explorateur Windows donc on va avoir l'impression
00:00:53 :que ça ne marche pas même si on va ultimement pouvoir ajouter ces éléments dans l'interfaceon aura l'impression que ça ne marche pas donc si on fait ça on aura bien quand on va déposer lesimages les images qui vont être déposées et qui ne seront plus sur le clic qui ne seront plus
00:01:07 :affichées à côté du clic de mon explorateur. Donc je vais pas vous le montrer si vous voulezessayer vous verrez enlever cette ligne et vous allez voir ce que ça donne ça ne marchera pastotalement. Donc il faut qu'on accepte l'événement c'est la première chose à faire et ensuite on va
00:01:21 :passer à travers tous les fichiers qui sont contenus à l'intérieur du Mimedata. Donc leMimedata on l'avait vu dans l'application sur le lecteur multimédia si vous vous souvenez bienon avait en fait filtré les éléments qui étaient disponibles à l'intérieur de notre explorateurgrâce au Mimedata donc là ce qu'on va faire c'est cette fois-ci récupérer donc les URL donc
00:01:41 :on appelle ça des URL en PySide même si dans ce cas-ci ça va être en fait des chemins de dossiersmais le nom de la méthode vous allez voir c'est URL. Donc on va faire une boucle pour boucler à
00:01:49 :travers tous les fichiers que l'on est en train de déposer dans l'interface donc on va dire pourURL in event.mimedata donc on retrouve le Mimedata ici et dans ce Mimedata on va avoir donc des
00:02:00 :URL donc on va récupérer chaque URL on va boucler à travers ces URL pour l'instant c'est un objetqui est donc un QURL et ce QURL il va avoir une méthode qui va nous permettre de récupérer lechemin complet sur le disque du fichier qu'on est en train de déposer. Donc cette méthode c'est
00:02:17 :to local file comme ceci donc ça ça va nous récupérer le chemin complet vers le fichier. Doncsi je fais un print de ça pour l'instant je vais juste faire un print et je vais lancer monapplication et vous allez voir que donc si je prends des images et que je les dépose en fait
00:02:32 :donc je vais en prendre juste une pour l'instant je la dépose dans mon interface si je reviens icion a bien le chemin complet ici de mon image que j'ai déposé. Donc pour l'instant elle n'est pas
00:02:42 :encore ajoutée dans mon interface vous voyez que ça fait juste un print mais elle ne s'affiche pasà l'intérieur de mon listewidget. Donc ça il va falloir le gérer donc on va faire tout simplement
00:02:50 :pour l'instant un self.listewidget additem et on va ajouter le chemin du fichier. Donc on vacouper ça ici et le mettre à l'intérieur du additem. Donc on va tester pour voir si ça marche je vais
00:03:01 :arrêter le script ici en cliquant tout en haut à droite sur le bouton rouge je le relance et on vavérifier donc si je glisse et que je dépose un fichier là vous voyez que ça fonctionne on a bienle nom du fichier qui apparaît. Donc je vais quand même vous montrer si puisque je vous en ai
00:03:18 :parlé mais c'était pas très très clair forcément je vais enlever le event.accept et vous allez voirce que ça fait donc je vais reprendre mon fichier je vais le déposer et vous voyez qu'on a bien doncle chemin qui s'ajoute mais vous remarquez que le si vous regardez la petite icône là hop elle
00:03:31 :repart dans le finder donc on a l'impression que ça ne marche pas que le l'en fait que l'événementn'a pas été accepté et c'est le cas puisque l'on n'a pas mis event.accept dans ce cas ci mais
00:03:40 :on arrive quand même à récupérer les url et à les afficher donc si vous voulez avoir vraiment lebon comportement il faut laisser donc ce event.accept comme ça qui nous permet quand on
00:03:50 :va déposer le fichier vraiment de le déposer dans l'interface et de ne pas avoir cette petiteanimation qui le renvoie dans mon finder. Donc on a bien le chemin qui s'ajoute pour l'instant
00:04:00 :c'est assez basique on a juste une boucle qui passe à travers les chemins et on ajoute lechemin on va tout de suite gérer le drop info donc le label drop info qui va être caché quand on vadéposer les fichiers donc je vais faire un set visible false pour que quand on dépose le fichier
00:04:16 :quand on prend le fichier qu'on le dépose là vous voyez que pour l'instant il est affiché donc on abien le label ici qui s'affiche et dès que je fais un déposer donc dès que je relâche le clicautomatiquement donc le chemin est ajouté dans le list widget et on cache le label drop info. Pour
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.