PHP GTK нажатие кнопки - PullRequest
       19

PHP GTK нажатие кнопки

1 голос
/ 26 сентября 2010

Я пытаюсь заставить эту кнопку изменить фон , когда вы нажимаете на нее и вот что у меня есть:

<?php
if (!class_exists('gtk')) {
    die("Please load the php-gtk2 module in your php.ini\r\n");
}
function loc(){
  return dirname(__FILE__);
};
$wnd = new GtkWindow();
$wnd->set_title('Picture Viewer');
$wnd->set_resizable(false);
$wnd->set_position(GTK_WIN_POS_CENTER);
$wnd->connect_simple('destroy', array('gtk', 'main_quit'));



$im = GtkImage::new_from_file(loc()."\bg.jpg");
$btn = new GtkButton;
$btn->set_image($im);

$btn->clicked(function(){
  $im = GtkImage::new_from_file(loc()."\bg2.jpg");
  $btn->set_image($im);
});

$wnd->add($btn);

$wnd->show_all();
Gtk::main();
?>

Почему это не работает?

Я думаю , что $btn->clicked(function(){ часть является проблемой.

1 Ответ

4 голосов
/ 26 сентября 2010

$btn->clicked на самом деле испускает сигнал щелчка. Что вы хотите сделать, это подключить функцию к сигналу:

$btn->connect('clicked', 'change_background');

function change_background($whichbutton)
{
    $im = GtkImage::new_from_file(loc()."\bg2.jpg");
    $whichbutton->set_image($im);
}
...