Чтоб не забыть
20-11-2013 00:32
к комментариям - к полной версии
- понравилось!
А то ведь потеряю, да забуду. А здесь сохраннее. В общем это "секундомер". Хреновый, но здесь просто отражен механизм генерации сигнала самим циклом main. Запускается таймер (кнопкой "старт"), который через секунду вызывает функцию, которая в свою очередь меняет надпись. Кнопкой стоп это дело прекращается.
#!/usr/bin/perl -w
use Gtk2;
use strict;
use utf8;
init Gtk2;
my $ret;
my $timer;
my $start;
my $win = new Gtk2::Window('toplevel');
$win->signal_connect("delete_event",\&CloseApp);
my $vbox = new Gtk2::VBox(0,5);
$vbox->set_homogeneous(0);
$vbox->set_spacing(5);
$vbox->set_padding(5);
my $label = new Gtk2::Label("time");
$vbox->pack_start_defaults($label);
my $button = new Gtk2::Button("Start");
$button->signal_connect("clicked",sub
{
$timer = Glib::Timeout->add(1000,\&MyTimer);
$start = time();
$ret = 1;
});
$vbox->pack_start_defaults($button);
$button=new Gtk2::Button("Stop");
$button->signal_connect("clicked", sub
{
$ret=0;
});
$vbox->pack_start_defaults($button);
$button=new Gtk2::Button("Quit");
$button->signal_connect("clicked",\&CloseApp);
$vbox->pack_start_defaults($button);
$win->add($vbox);
$win->show_all();
main Gtk2;
sub MyTimer
{
my $tm = time();
my $string = $tm-$start;
$label->set_label($string);
return $ret;
}
sub CloseApp
{
Gtk2->main_quit;
}
вверх^
к полной версии
понравилось!
в evernote