Perl Gtk2::Window->list_toplevels

问题描述 投票:0回答:1

我正在使用 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' );

我如何处理上述祝福对象/价值? 我正在寻找每个顶级窗口的名称(或某种独特的指示符)。

perl gtk2
1个回答
0
投票

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 库的绑定,因此文档有时分散且不完整。搜索额外的文档可能是个好主意。

© www.soinside.com 2019 - 2024. All rights reserved.