我正在使用 Perl Gtk2,我想查看打开的顶层窗口列表,使用:
my @WL = Gtk2::Window->list_toplevels;
print STDOUT "TOP_WINDOWS:\n @WL\n";
TOP_WINDOWS:
Gtk2::Window=HASH(0x23a4040) Gtk2::Window=HASH(0x23b5628) Gtk2::Window=HASH(0x1ca6238)
When I dump this list:
print STDOUT "DUMPER:\n", Dumper (@WL);
... it yields this:
DUMPER:
$VAR1 = bless( {}, 'Gtk2::Window' );
$VAR2 = bless( {}, 'Gtk2::Window' );
$VAR3 = bless( {}, 'Gtk2::Window' );
我如何处理上述祝福对象/价值? 我正在寻找每个顶级窗口的名称(或某种独特的指示符)。
list_toplevels
方法返回 Gtk2::Window 对象的列表。浏览文档以查看可用于顶层窗口(你说你查询)的方法/标识符的种类。
改编自Gtk2
的概要use warnings;
use strict;
use feature 'say';
use Gtk2 -init;
my $window = Gtk2::Window->new('toplevel');
$window->set_default_size(400, 200);
$window->set_position('center');
$window->set_title('Main Window');
my $button = Gtk2::Button->new('Quit');
$button->signal_connect(clicked => sub { Gtk2->main_quit });
$window->add($button);
$window->show_all;
my $win2 = Gtk2::Window->new('toplevel');
$win2->set_default_size(100, 200);
$win2->set_title('== side window ==');
my $bt2 = Gtk2::Button->new('Hello');
$win2->add($bt2);
$win2->show_all;
my @tl_wins = Gtk2::Window->list_toplevels;
for my $w (@tl_wins) {
say "title: ", $w->get_title;
}
Gtk2->main;
这将打印他们的标题,作为演示。有更好的标识符,具体取决于您需要它们做什么。也可以在此处查看文档。
注意,由于这些是 C 库的绑定,因此文档有时分散且不完整。搜索额外的文档可能是个好主意。