Perl:Gtk2 Icon

Материал из KLUG
Перейти к: навигация, поиск

Иконки в трее. Наглядный пример. Отображает в трее число ($i), инкрементирует каждые 1,5 секунды

#!/usr/bin/perl
use strict;
use warnings;
use Gtk2;
use Gtk2::TrayIcon;
my ($icon, $label, $eventbox);
my $i=0;
my $timeout = 1500; #ms
sub label_refresh{ # функция, обновляет отображаемую лэйбу
   my $text = shift;
   $label->set_label($text);
};
sub get_value{ # функция, актуализирует данные, которые необходимо отобразить, здесь можно возвращать температуру воды в в кофеварке, к примеру
   return ++$i;
};
Gtk2->init();
$icon = Gtk2::TrayIcon->new("MI count applet");
$eventbox = Gtk2::EventBox->new();
$label = Gtk2::Label->new("0");
$eventbox->add($label);
$icon->add($eventbox);
&label_refresh(&get_value()); # функция, обновляет отображаемую информацию
# таймаут задается заранее, до того, как программа войдет в цикл Gtk2->main
Glib::Timeout->add($timeout, sub { &label_refresh(&get_value()); 1;});
$icon->show_all();
Gtk2->main(); # Главный цикл
exit $?;
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты