• Авторизация


Чтоб не забыть 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


Вы сейчас не можете прокомментировать это сообщение.

Дневник Чтоб не забыть | Affrikan - Дневник Affrikan | Лента друзей Affrikan / Полная версия Добавить в друзья Страницы: раньше»