Guide complet des signaux et slots PySide6
PySide6 permet de connecter facilement les événements de l’interface aux fonctions de traitement grâce au système de signaux et slots. Cette approche évite le polling et rend les applications plus réactives.
Vous découvrirez comment déclarer des signaux personnalisés, les connecter à des slots, gérer les paramètres et déconnecter proprement les liaisons pour garder un code maintenable.
Créer et émettre un signal personnalisé
Définissez un signal dans une sous-classe de QObject avec le décorateur Signal. Précisez les types des arguments attendus pour un typage strict.
- from PySide6.QtCore import QObject, Signal
- class Emetteur(QObject): nouveau_message = Signal(str)
- Emetteur().nouveau_message.emit('Bonjour')
Connecter un slot à un signal
Utilisez la méthode connect pour lier votre fonction au signal. Le slot peut être une méthode ou une fonction libre.
- emetteur.nouveau_message.connect(recevoir)
- def recevoir(texte): print(texte)
Gérer plusieurs slots et déconnexion
Un signal peut être relié à
plusieurs slots. Appelez disconnect lorsque le lien
Un signal peut être relié à plusieurs slots. Appelez disconnect lorsque le lien n’est plus nécessaire pour libérer les ressources.
- signal.disconnect(slot)
- Vérifiez l’ordre de connexion pour éviter les doublons
Bonnes pratiques
Préférez les signaux typés, documentez les paramètres et testez la déconnexion dans les cas d’erreur pour éviter les fuites mémoire.
