上次我们用php-gtk2写了第一个hello world的windows gui程序,不是太难,也不算太容易。因为界面上毕竟不像开发web程序那样,有dreamweaver之类的工具辅助设计,也不像delphi之类的IDE,要做个像样的玩具肯定是有些难度的。下面我们看看进阶的用法,使用Glade来辅助界面设计
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
<widget class="GtkWindow" id="wndClose">
<property name="visible">True</property>
<property name="title" translatable="yes">Close me</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<signal name="destroy" handler="gtk::main_quit"/>
<child>
<widget class="GtkButton" id="btnClose">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-close</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="onClickButton"/>
</widget>
</child>
</widget>
</glade-interface>
<?php
// 建立一个glade实例,从xml文件里读取参数和元素
$glade = new GladeXML('helloglade.glade');
//Start the main loop
Gtk::main();
?>