<?php
$window = new GtkWindow();
$window->set_size_request(200, -1);
$window->set_position(Gtk::WIN_POS_CENTER);
$window->connect_simple('destroy', array('Gtk', 'main_quit'));
$vbox = new GtkVBox();
$button = new GtkButton('_Кнопка', TRUE);
$vbox->pack_start($button, FALSE, FALSE);
$label=new GtkLabel();
$vbox->pack_start($label, FALSE, FALSE);
$button->connect_simple('clicked', 'test', $label);
$window->add($vbox);
$window->show_all();
Gtk::main();
function test($label)
{
for ($i=0; $i<=10; $i++)
{
$label->set_text($i);
sleep(1);
}
}
?>
по идее вроде как должно было обновляться содержимое $label каждую
секунду... однако графическое оформление просто останавливалось, и
потом показывалось только конечное значение
<?php
$i = 0;
$window = new GtkWindow();
$window->set_size_request(200, -1);
$window->set_position(Gtk::WIN_POS_CENTER);
$window->connect_simple('destroy', array('Gtk', 'main_quit'));
$vbox = new GtkVBox();
$button = new GtkButton('_Кнопка', TRUE);
$button->connect_simple('clicked', 'test');
$vbox->pack_start($button, FALSE, FALSE);
$label=new GtkLabel();
$vbox->pack_start($label, FALSE, FALSE);
$window->add($vbox);
$window->show_all();
Gtk::main();
function test()
{
global $i, $id, $label;
$label->set_text($i);
$i++;
if ($i > 10)
{
Gtk::timeout_remove($id);
}
else
{
$id = Gtk::timeout_add(1000, 'test');
}
}
?>