in reply to want way to drag tk window
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; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: want way to drag tk window
by golux (Chaplain) on Aug 05, 2017 at 23:08 UTC | |
by redss (Monk) on Aug 06, 2017 at 00:07 UTC | |
by tybalt89 (Monsignor) on Aug 06, 2017 at 01:31 UTC | |
by golux (Chaplain) on Aug 06, 2017 at 00:35 UTC | |
by tybalt89 (Monsignor) on Aug 06, 2017 at 00:30 UTC |