- 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 voir qu'on peut également connecter un signal d'un widget à la méthoded'un autre widget. Ça va permettre de faire des opérations assez intéressantes comme par
00:00:09 :exemple modifier un texte quand on va taper dans une boîte de texte ou vider une boîte de textequand on va cliquer sur un bouton. Donc je vais vous montrer tout ça avec un exemple. On va déjà
00:00:19 :créer donc un line edit, un label et un push button. Donc je vais les importer au dessus icidonc QLineEdit, QPushButton et QLabel. Donc c'est les trois widgets qu'on va utiliser pour cet
00:00:31 :exemple. Je vais les créer donc on va faire un line edit que je vais appeler LineEditText commececi. Donc moi c'est une nomenclature que j'utilise assez régulièrement, c'est à dire préfixer le nom
00:00:41 :de mes variables avec une indication du widget dont il s'agit. Par exemple pour un line edit jevais mettre LE, pour un bouton je vais mettre BTN et une description du bouton, par exemple leclear. Donc pour le line edit on va faire un QLineEdit tout simple, pour le bouton clear on
00:00:57 :va faire un push button sur lequel on va marquer tout simplement le texte clear et pour le labelon va faire une variable que je vais appeler LBLtext et qui va être égale à un QLabel. Par
00:01:09 :défaut on va juste mettre une chaîne de caractère avec trois points de suspension et par la suiteon va voir comment connecter donc le signal du line edit au label. Je vais ajouter tout ça dans
00:01:19 :mon MainLayout donc je vais faire MainLayout.AddWidget, on va ajouter d'abord le line edit,on va ensuite ajouter le label et on va finir avec le bouton. Donc si je sauvegarde et que je
00:01:30 :lance l'application vous allez voir qu'on a une application très simple avec ici donc un lineedit, un texte et un bouton. Je vais juste changer l'orientation du layout pour les mettre sur un
00:01:39 :axe vertical donc à la place de HBoxLayout je vais mettre VBoxLayout et je vais m'assurer dechanger l'import également ici. Donc je sauvegarde, je relance, on a bien donc les trois à la suite
00:01:49 :pour l'instant si je rentre du texte ou que je clique sur le bouton il ne se passe rien mais onva voir comment connecter ces différents éléments ensemble. Donc on va encore une fois utiliser les
00:01:58 :signaux, je vais utiliser donc sur mon line edit texte le signal TextChanged qui va me permettred'effectuer une action quand le texte est modifié à l'intérieur du line edit. Je vais utiliser là
00:02:09 :encore le connect pour le connecter à quelque chose et dans ce cas ci on va le connecter àla méthode setText de notre label donc on va faire self.lblText.setText. Là encore on ne met pas
00:02:20 :les parenthèses puisqu'on ne veut pas appeler cette méthode, on veut juste indiquer à PySidequ'on va utiliser cette méthode lorsque le texte va être changé. Si on va voir la documentation
00:02:29 :de ce signal TextChanged on va voir qu'il y a un élément qui est envoyé quand le texte estmodifié. Donc dans le quick search ici je vais marquer TextChanged et je vais aller chercher
00:02:39 :la documentation de ce signal. Donc là vous voyez qu'il y a beaucoup de choses ici qui utilisent cesignal. Dans mon cas c'est le queue line edit qui m'intéresse donc je vais cliquer ici sur
00:02:47 :queueLineEdit.TextChanged et ça va m'amener dans la documentation. Et vous voyez ici qu'on a unargument qui est envoyé donc arg1 et c'est une chaîne de caractère. Donc qu'est ce que c'est
00:02:57 :cet argument ? Ça va tout simplement être le texte qui est tapé dans la boîte de texte. Donc ce textequi est tapé dans la boîte de texte il va être envoyé à cette méthode setText qui sert à modifierle texte du label. Ça va donc permettre quand on modifie le texte du line edit de modifier en
00:03:12 :conséquence le texte du label. Donc on va tester tout ça. Je lance mon application et cette fois-cisi j'écris du texte ici vous voyez qu'automatiquement le label est mis à jour en fonction du texte quiest écrit dans la boîte de texte. Et maintenant on va faire la même chose avec le bouton. Donc
00:03:27 :on va connecter le signal clict du bouton et on va le connecter à la méthode clear du line edit.Donc on va faire le texte.clear et donc quand on va cliquer sur le bouton bouton clear ici ça va
00:03:40 :appeler cette méthode clear sur le line edit et remettre le texte à zéro. Donc je sauvegarde jerelance. Si j'écris bonjour ici on a bien le label qui se met à jour et si je clique sur clear on a
00:03:50 :la boîte de texte qui est vidée et le label qui est donc vide également puisque on a cettecorrespondance entre le line edit et le label. Donc voilà comment vous pouvez connecter directement
00:03:58 :des signaux d'un widget aux méthodes d'un autre widget. Donc ça peut être très pratique comme çaen une ligne pour faire ce genre de comportement sans avoir besoin de créer une méthodesupplémentaire. Bien sûr on pourrait faire une méthode par exemple une méthode ici clear texte
00:04:12 :dans laquelle on ferait exactement la même chose. Donc là on pourrait faire le texte.clear et onpourrait connecter cette méthode ici en faisant self.clear texte. Donc ça peut être pratique si
00:04:23 :vous avez plusieurs choses à faire. Si vous voulez par exemple modifier après le clear donc parexemple changer le texte du label on pourrait faire un label texte.set texte et remettre le
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.