Bonjour,

Je suis en train de faire une interface de dessin en Tk, et j'ai un
problème avec les liaisons d'événements.
Je voudrais créer une gomme qui efface tout ce qu'elle voit sur son
passage quand le bouton gauche est enfoncé.
Si j'essaye la séquence B1-motion, il faut cliquer sur l'objet et
bouger la souris pour que l'objet s'efface.
Un variante qui marche bien est Alt-Enter, mais c'est évidemment la
touche Alt qui est enfoncée, hors je voudrais le bouton gauche de la
souris.

si vous avez une idée...

Bien le merci.
AlainBB

Un code démo

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use warnings;
use strict;
use Tk;
my  $mw=MainWindow->new;
my $drawing=$mw->Scrolled(
        'Canvas',
        -width      => 800,
        -height     => 400,
        -confine    => 0,
        -background => "white"
    )->pack(-side => "left");
my $oval=$drawing->createOval(0,0,100,100,-fill=>"red");
 
# fonctionne en cliquant sur le cercle
#$drawing->bind("all", "<ButtonPress>", sub {$drawing->delete($oval);});
 
# fonctionne en gardant le alt enfoncé et en passant avec la souris sur cercle
#$drawing->bind("all", "<Alt-Motion>", sub {$drawing->delete($oval);});
 
# ne fonctionne pas en gardant le bouton de souris enfoncé et en passant avec la souris sur cercle
$drawing->bind("all", "<B1-Motion>", sub {$drawing->delete($oval);});
 
MainLoop;