2010-09-25 19 views
1

Je suis en train de faire ce contexte de changement bouton lorsquevous cliquez dessus et voici ce que j'ai:PHP bouton GTK cliquez

<?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(); 
?> 

Pourquoi ça ne marche pas ?

Je pense que le $btn->clicked(function(){partie est le problème.

Répondre

4

$btn->clicked effectivement émet le signal cliqué. Ce que vous voulez faire est connecter une fonction au signal:

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

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