in reply to Re^3: Tk: Binding Keys to events
in thread Tk: Binding Keys to events

Hi tamaguchi,

No, there's no way to do it using multiple keypresses (that I'm aware of).  And even if you could, there would be a problem when you held the 2 keys down, and relied on key repeats; whichever key you pressed "last" will dictate the direction that the object moves in.

You can try it yourself by holding down the left and up arrow, for example; the initial movement might appear to be a "wobbly" northwest movement, but after the repeat kicks in, the square will only move left or up.

My recommendation would be to assign a completely different set of keys.  For example, you could use the 8 keys centered around the "k":

my $pbindings = { 'Key-j' => sub { $c->move($rect, -5, 0) }, 'Key-l' => sub { $c->move($rect, 5, 0) }, 'Key-i' => sub { $c->move($rect, 0, -5) }, 'comma' => sub { $c->move($rect, 0, 5) }, 'Key-u' => sub { $c->move($rect, -5, -5) }, 'Key-o' => sub { $c->move($rect, 5, -5) }, 'Key-m' => sub { $c->move($rect, -5, 5) }, 'period' => sub { $c->move($rect, 5, 5) }, }; + map { $mw->bind("<$_>" => $pbindings->{$_}) } (keys %$pbindings);

s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/