PyQt Connecter à l'événement keypressevent
Certains widgets me permettra de faire:
self.widget.clicked.connect(on_click)
mais le faire:
self.widget.keyPressEvent.connect(on_key)
échouera en disant que l'objet n'a pas d'attribut de 'connecter'.
Je sais que les sous-classing le widget et re-mise en œuvre de la keyPressEvent
méthode me permettra de répondre à l'événement. Mais comment puis-je .connect()
à l'événement de clavier par la suite, ou, autrement dit, à partir d'un contexte utilisateur?
- Corrigez-moi si je me trompe, mais l'événement keypressevent n'est pas une fente de sorte qu'il ne peut pas être connecté. Vous avez à gérer à l'aide de l'un quelconque des gestionnaires d'événements.
Vous devez vous connecter pour publier un commentaire.
Créer un signal personnalisé, et l'émettre réimplémentée à partir de votre gestionnaire d'événement:
(NB: l'appel de la classe de base de la mise en œuvre est nécessaire afin de garder la manipulation des événements).
__init__
et appeler le super est__init__
?__init__
sur chaque classe de base, indépendamment du fait qu'il a été overidden ou pas. Mais bien sûr, si vous ne remplacer__init__
, vous aurez alors à appeler explicitement la classe de base de la mise en œuvre ainsi (car il ne sera plus appelée automatiquement).La façon dont je l'ai fait dans le passé (c'est un travail autour), lorsque cela est dans l'émetteur et le récepteur déclare/se connecte au signal.