访客地图

PHP-GTK2-文档学习&翻译——教程部分Hello World (basic)

张成
2015/12

首先我们建立一个Hello World项目,建立一个窗口与文本HelloWorld。

例子:简单的HelloWorld脚本

<?php
if (!class_exists('gtk')) {
    die("Please load the php-gtk2 module in your php.ini\r\n");
}
 
$wnd = new GtkWindow();
$wnd->set_title('Hello world');
$wnd->connect_simple('destroy', array('gtk', 'main_quit'));
 
$lblHello = new GtkLabel("Just wanted to say\r\n'Hello world!'");
$wnd->add($lblHello);
 
$wnd->show_all();
Gtk::main();

运行效果如下。执行我们的bat文件,输入项目路径

blob.png


下面我们来分析每一行代码。

if (!class_exists('gtk')) {
    die("Please load the php-gtk2 module in your php.ini\r\n");
}

判断gtk类的存在性,不要使用dl()函数,这个在PHP5已经废弃。

$wnd = new GtkWindow();

创建一个窗口对象,在之前的PHP4 和PHP-GTK1中,你可能会忘记使用&在new之前,但这在PHP5中不需要了。这自动是个引用。

$wnd->set_title('Hello world');

设置当前窗口的标题。

$wnd->connect_simple('destroy', array('gtk', 'main_quit'));

这一段代码将窗口对象的析构函数与GTK::main_quit方法关联起来,告诉窗口关闭时使用这个方法。

$lblHello = new GtkLabel("Just wanted to say\r\n'Hello world!'");

我们想创建一些少许文本,使用GtkLabel能很好的完成这个任务。

$wnd->add($lblHello);

告诉窗口,加入这个组件到他里面去。

$wnd->show_all();

显示窗口

Gtk::main();

进行窗口循环,在windows编程中,窗口不断循环取得消息,根据消息来处理各种事件。这里封装到了Gtk::main()函数中。