Ignorer la souris et le clavier événements dans Qt
Dans Qt, comment puis-je ignorer tous les souris et les événements de clavier et, plus tard, cesser de les ignorer? Qui est: cliquez sur un bouton, ignorer toutes les manifestations dans les enfants, et cliquez de nouveau, ne pas l'ignorer. Est-ce clair?
J'ai les lignes suivantes, mais peut-être que je suis en train de faire quelque chose de mal:
setAttribute(Qt::WA_TransparentForMouseEvents);
setFocusPolicy(Qt::NoFocus);
Remarque:
setAttribute(Qt::WA_TransparentForMouseEvents);
-- rend le widget transparent pour les événements de souris; setEnabled(false);
-- rend le widget ignorer la souris et le clavier événements (mais en silence consommer encore, il apparaît).OriginalL'auteur | 2010-02-04
Vous devez vous connecter pour publier un commentaire.
Ne pas utiliser setFocusPolicy(Qt::NoFocus); et il propage les événements de la mère. Utilisez uniquement des setAttribute(Qt::WA_TransparentForMouseEvents);
Est-il une manière similaire à ignorer les événements de clavier?
OriginalL'auteur danjy
Vous pouvez utiliser les Événements de filtres sur votre souris et votre clavier événements à filtrer certains de pression de touche ou clic de souris lorsque vous en avez besoin :
...
Plus d'informations sur ce : http://qt.nokia.com/doc/4.6/eventsandfilters.html
Espère que cela aide !
OriginalL'auteur Andy M
Vous pouvez utiliser:
il désactiver la souris et le clavier événements pour un widget.
OriginalL'auteur Massimo Fazzolari
Entendez-vous pour un QGraphicsItem ?
Si oui, vous pouvez appeler
Et à activer l'événement plus tard, en tant que l'élément n'a pas de recevoir des événements, vous devez passer par la Scène, parce que vous ne pouvez pas recevoir directement d'un événement sur l'élément.
Si votre problème n'est pas à l'aide de GraphicsView Cadres, mais l'autre partie de qt, c'est presque le même processus :
Vous pouvez appeler le :
Afin de réactif le widget, suffit de détecter la conférence de presse à l'intérieur d'un objet dans votre application pour être en mesure d'appeler " setEnable(true) sur votre gadget !
Espère que cela aide !
`
OriginalL'auteur Matthieu