Something like this?
All you have to do is change the geometry :)
#!/usr/bin/perl # http://perlmonks.org/?node_id=1196818 use strict; use warnings; use Tk; sub xy { $_[0]->XEvent->x, $_[0]->XEvent->y } my $mw = MainWindow->new; $mw->overrideredirect(1); $mw->Label( -text => 'Press 1, Move, then Release in green Canvas to move window +', )->pack(-fill => 'x'); my $c = $mw->Canvas(-width => 500, -height => 400, -bg => 'green', )->pack; $c->Tk::bind('<1>' => \&leftdown); $c->Tk::bind('<ButtonRelease-1>' => \&leftup); $mw->Button(-text => 'Exit', -command => sub { $mw->destroy }, )->pack(-fill => 'x'); MainLoop; my ($startx, $starty); sub leftup { my $oldposition = $mw->geometry; my ($endx, $endy) = &xy; my $deltax = $endx - $startx; my $deltay = $endy - $starty; my $newposition = $oldposition =~ s/\+\K(\d+)\+(\d+)$/ ($1 + $deltax) . '+' . ($2 + $deltay) /er; $mw->geometry( $newposition ); print "$newposition\n"; } sub leftdown { ($startx, $starty) = &xy; }
In reply to Re: want way to drag tk window
by tybalt89
in thread want way to drag tk window
by redss
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |