Tk has already mouse wheel support, however, there is no binding in perl/Tk. If you want to make Text or Listbox widgets mouse-wheel-aware, you can use the method below (borrowed from the Tcl/Tk library), e.g. $text->BindMouseWheel. Note that I changed the scrolling delta from the original 4 or 5 lines to 3 (which seems to match the behaviour on my NT machine). # not yet tested on Unix sub Tk::Widget::BindMouseWheel { my($w) = @_; # The MouseWheel will typically only fire on Windows. However, # someone could use the "event generate" command to produce one # on other platforms. $w->bind('<MouseWheel>', [ sub { $_[0]->yview('scroll',-($_[1]/120)*3,'units') }, + Tk::Ev("D")]); if ($Tk::platform eq 'unix') { # Support for mousewheels on Linux/Unix commonly comes through + mapping # the wheel to the extended buttons. If you have a mousewheel +, find # Linux configuration info at: # http://www.inria.fr/koala/colas/mouse-wheel-scroll/ $w->bind('<4>', sub { $_[0]->yview('scroll', -3, 'units') unless $Tk::strictMotif; }); $w->bind('<5>', sub { $_[0]->yview('scroll', 3, 'units') unless $Tk::strictMotif; }); } }
In reply to Re: Tk scrolling and mouse wheel
by bikeNomad
in thread Tk scrolling and mouse wheel
by John M. Dlugosz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |