in reply to TK Toplevel Window List
The following script will output a list of MainWindows and all (immediate) children for every instance that is running.
#!/usr/bin/env perl -T use strict; use warnings; use Tk; $ENV{HOME} =~ /^(.*)$/; $ENV{HOME} = $1; my $widget_list_joiner = '~'; my $mw = MainWindow->new(-title => 'Toplevel Lister'); $mw->geometry('400x300+50+50'); my $tl = $mw->Toplevel; $tl->Button(-text => 'Close', -command => sub { $tl->withdraw })->pack +; $tl->raise; my $action_F = $mw->Frame()->pack(-side => 'bottom'); my $exit_B = $action_F->Button(-text => 'Exit', -command => sub { exit + })->pack; my $output_F = $mw->Frame()->pack; my $info_T = $output_F->Scrolled('Text', -scrollbars => 'osoe')->pack; $info_T->insert(end => '$mw->name : ' . $mw->name . "\n"); my @interps = $mw->interps; $info_T->insert(end => '$mw->interps : ' . "\n"); for (sort @interps) { $info_T->insert(end => "\t$_\n"); $info_T->insert(end => "\tToplevels:\n"); my $toplevel_list = $mw->send($_ => undef); for (split $widget_list_joiner => $toplevel_list) { $info_T->insert(end => "\t\t$_\n"); } } MainLoop; sub Tk::Receive { my $mw = shift; return join $widget_list_joiner => $mw, $mw->children; }
On the first run, the output looks like:
$mw->name : pm_tk_top_list $mw->interps : pm_tk_top_list Toplevels: MainWindow=HASH(0x7fecba93def0) Tk::Toplevel=HASH(0x7fecba9493b0) Tk::Frame=HASH(0x7fecba9a3900) Tk::Frame=HASH(0x7fecba9a3180)
With 3 instances running:
$mw->name : pm_tk_top_list #3 $mw->interps : pm_tk_top_list Toplevels: MainWindow=HASH(0x7fecba93def0) Tk::Toplevel=HASH(0x7fecba9493b0) Tk::Frame=HASH(0x7fecba9a3900) Tk::Frame=HASH(0x7fecba9a3180) pm_tk_top_list #2 Toplevels: MainWindow=HASH(0x7f87a113df20) Tk::Toplevel=HASH(0x7f87a11493b0) Tk::Frame=HASH(0x7f87a11a3900) Tk::Frame=HASH(0x7f87a11a3180) pm_tk_top_list #3 Toplevels: MainWindow=HASH(0x7fbb3093df50) Tk::Toplevel=HASH(0x7fbb309493b0) Tk::Frame=HASH(0x7fbb309a3900) Tk::Frame=HASH(0x7fbb309a3180)
References:
-- Ken
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: TK Toplevel Window List
by Anonymous Monk on Feb 12, 2013 at 20:44 UTC | |
by Anonymous Monk on Feb 13, 2013 at 17:02 UTC | |
by Anonymous Monk on Feb 14, 2013 at 08:16 UTC |