6
votes

Comment puis-je lier un événement au bouton gauche de la souris enfoncé?

J'ai besoin d'une commande à exécuter tant que le bouton gauche de la souris est en cours de maintien.


0 commentaires

3 Réponses :


1
votes

Utilisez les événements de déplacement / mouvement de la souris et vérifiez les indicateurs de modificateur. Les boutons de la souris s'afficheront là-bas.


0 commentaires

5
votes

Regardez la table 7-1 des documents. Il existe des événements qui spécifient le mouvement lorsque le bouton est enfoncé, , etc.

Si vous ne parlez pas d'un événement de presse et de déplacement, vous pouvez commencer à effectuer votre activité sur et arrêtez de le faire lorsque vous recevez .


3 commentaires

Je recommanderais de garder une variable comme Mouse_is_down et de la définir sur true ou false selon que vous recevez ou non l'événement de la presse ou de la version. Dans votre code, lors de la boucle, vous pouvez vérifier si la variable est true , ce qui signifie que la souris est en panne et faites votre chose pour une touche de bouton. Lorsque la variable est false , vous pouvez ignorer votre code pour la maintien du bouton de la souris.


Apparemment maintenant, le lien doit être: effabot.org/tkinterbook/tkinter-events-Attand -bindings.htm


@Jessedhillon Le problème avec c'est quand vous déplacez la souris hors de la fenêtre



8
votes

Si vous voulez "quelque chose se passer" sans aucun événement intermédiaire (c'est-à-dire: sans que l'utilisateur déplace la souris ou en appuyant sur des autres boutons), votre seul choix est de sonder. Définissez un drapeau lorsque le bouton est enfoncé, non défini lors de la publication. Lors de l'interrogation, vérifiez le drapeau et exécutez votre code si son ensemble.

Voici quelque chose à illustrer le point: xxx

, sondage est Généralement pas nécessaire dans une application d'interface graphique. Vous vous souciez probablement que de ce qui se passe pendant que la souris est pressée et bouge. Dans ce cas, au lieu de la fonction de sondage, liez simplement do_work à un .


0 commentaires