当前位置: 首页 > 工具软件 > PHP-GTK > 使用案例 >

php-gtk2怎么用,学习php-gtk2之事件绑定

丌官博文
2023-12-01

上次我们在hello glade的时候看到,php-gtk2已经能够根据Glade输出的xml生成窗体了。但是在Glade中设定的Button事件,如何和php接口呢?看下面的例子:

Glade输出的xml

True

Close me

GTK_WINDOW_TOPLEVEL

GTK_WIN_POS_NONE

False

True

False

True

False

False

GDK_WINDOW_TYPE_HINT_NORMAL

GDK_GRAVITY_NORTH_WEST

True

True

gtk-close

True

GTK_RELIEF_NORMAL

True

其中有这样一行,表示id为btnClose的button绑定了事件onClickButton

下面是php实现的onClickButton:

$glade = new GladeXML(dirname(__FILE__) . '/helloglade.glade');

//这是重点,事件自动绑定

$glade->signal_autoconnect();

//当btnClose被点击的时候就会调用本事件

function onClickButton() {

echo "button clicked!\r\n";

Gtk::main_quit();

}

//Start the main loop

Gtk::main();

?>

在上面的例子中,很容易就完成了onClickButton函数的绑定,那么有没有oo一点的写法呢?再看下面的例子:

// 这里我们使用一个对象来代替function

class MyClass {

//btnClose被点击的时候会调用本方法

function onClickButton() {

echo "MyClass->onClickButton!\r\n";

Gtk::main_quit();

}

function staticMethod() {

echo "MyClass::staticMethod()\r\n";

}

}

$glade = new GladeXML(dirname(__FILE__) . '/helloglade.glade');

//这里是重点,自动绑定某个对象的方法

$myClassInstance = new MyClass();

$glade->signal_autoconnect_instance($myClassInstance);

Gtk::main();

?>

到了这一步,个人感觉php-gtk2的开发就比较顺畅了,只是程序的编译输出,目前还没有合适的方法。

 类似资料: