Создайте новое окно perl/tk, которое автоматически закроется через 1 секунду.

Я хочу добавить в свой скрипт новый виджет, который откроет новое окно с текстом и автоматически закроется через 1 секунду.

как мне это сделать ?


person guy ergas    schedule 31.08.2010    source источник
comment
Вы пробовали perldoc -f alarm?   -  person Dummy00001    schedule 31.08.2010
comment
@ Dummy00001 Dummy00001 Функция alarm в данном случае не очень хорошая идея; Tk имеет собственный цикл событий для такого рода вещей.   -  person Chas. Owens    schedule 31.08.2010


Ответы (1)


Я думаю, вам нужно Tk::after.

#!/usr/bin/perl

use strict;
use warnings;

use Tk;

my $mw    = MainWindow->new;
my $spawn = $mw->Button(
    -text    => 'spawn',
    -command => sub {
        my $subwindow = MainWindow->new;
        my $label     = $subwindow->Label(-text => "spawned");
        $label->pack;
        $subwindow->after(1_000, sub { $subwindow->destroy; });
    }
);
$spawn->pack;
my $exit = $mw->Button(
    -text    => 'exit',
    -command => sub { print "exiting...\n"; exit }
);
$exit->pack;

MainLoop;
person Chas. Owens    schedule 31.08.2010