J'ai besoin du filtre d'événements pendant un certain temps seulement, y a-t-il un moyen de le désinstaller plus tard?
Veuillez lire le fonctionnement du système d'événements dans Qt ici . Ceci est crucial pour la compréhension de base, en particulier ce paragraphe:
La fonction QObject :: installEventFilter () permet cela en configurant un filtre d'événement, ce qui amène un objet filtre nommé à recevoir les événements pour un objet cible dans sa fonction QObject :: eventFilter (). Un filtre d'événements traite les événements avant l'objet cible, ce qui lui permet d'inspecter et d'éliminer les événements selon les besoins. Un filtre d'événement existant peut être supprimé à l'aide de la fonction QObject :: removeEventFilter ().
Après avoir lu cela, vous pouvez voir qu'il y a une contrepartie pour installEventFilter
, sans surprise, il est appelé removeEventFilter
. Voici la documentation Qt 5 à ce sujet:
void QObject :: removeEventFilter (QObject * obj)
Supprime un objet de filtre d'événement obj de cet objet. La demande est ignorée si un tel filtre d'événements n'a pas été installé.
Tous les filtres d'événements pour cet objet sont automatiquement supprimés lorsque cet objet est détruit.
Il est toujours sûr de supprimer un filtre d'événements, même pendant l'activation du filtre d'événements (c'est-à-dire de la fonction eventFilter ()).
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots