<p> 环境:W2k+php4.3.1+php/gtk0.5.2</p><p> 一个简单的记事本(只可以打开文件进行修改)</p><p> <code><?php<br />set_time_limit (0);  // 设置运行时间<br />if (!class_exists ("gtk"))  // 判断是否有GTK模块<br /> if (strtoupper (substr ($_SERVER["OS"], 0, 3)) == "WIN")<br /> dl ("php_gtk.dll");<br /> else<br /> dl ("php_gtk.so");<br />$window = &new GtkWindow (); // 建一个窗口<br />$window->set_uposition (100, 100); // 窗口出现位置<br />$window->set_usize ((gdk::screen_width()-200), (gdk::screen_height()-150)); // 窗口大小<br />$window->set_title ("WINDOWS");  // 设置窗口标题<br />$window->connect_object ('destroy', array ('gtk', 'main_quit'));  // 注册窗口的事件<br />$vbox = &new GtkVBox ();  <br />$hbox = &new GtkHBox ();  <br />$window->add ($vbox);<br />$menuBar = &new GtkMenuBar ();  // 创建菜单<br />$vbox->pack_start ($menuBar, false, false, 0);<br />$file = &new GtkMenuItem ("File");<br />$menuBar->append ($file);<br />$fileMenu = &new GtkMenu ();<br />$open = &new GtkMenuItem ("Open");<br />$save = &new GtkMenuItem ("Save");<br />$line = &new GtkMenuItem ();<br />$line->set_sensitive (true);<br />$exit = &new GtkMenuItem ("Exit");<br />$fileMenu->append ($open);<br />$open->connect_object ('activate', 'showFileSelection');  <br />$fileMenu->append ($save);<br />$save->connect_object ('activate', 'saveFile');<br />$fileMenu->append ($line);<br />$fileMenu->append ($exit);<br />$exit->connect_object ('activate', array ('gtk', 'main_quit'));<br />$file->set_submenu ($fileMenu);<br />$scroll = &new GtkScrolledWindow ();<br />$scroll->set_border_width (8);<br />$scroll->set_policy (GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);<br />$hbox->pack_start ($scroll, true, true, 0);<br />$vbox->pack_start ($hbox, true, true, 1);<br />$text = &new GtkText ();<br />$text->set_editable (true);<br />$text->set_word_wrap (true);<br />$scroll->add ($text);<br />function showFileSelection ()  // 文件选择函数<br />{<br /> $file = &new GtkFileSelection ("File Selection");<br /> $ok_button = $file->ok_button;<br /> $ok_button->connect ('clicked', 'openFile', $file);<br /> $ok_button->connect_object ('clicked', array ($file, 'destroy'));<br /> $cancel_button = $file->cancel_button;<br /> $cancel_button->connect_object ('clicked', array ($file, 'destroy'));<br /> $file->show ();<br />}<br />$filePath = null;<br />function openFile ($button, $f) // 打开文件的函数<br />{<br /> GLOBAL $text, $save, $filePath;<br /> $filePath = $f->get_filename ();<br /> if (is_file ($filePath))<br /> {<br /> $fp = fopen ($filePath, 'r');<br /> while (!feof ($fp))<br /> $str .= fgets ($fp, 1024);<br /> $text->insert (null, null, null, $str);<br /> fclose ($fp);<br /> return $filePath;<br /> }<br />}<br />function saveFile () // 保存文件的函数<br />{<br /> GLOBAL $filePath, $text;<br /> if (is_file ($filePath))<br /> {<br /> $str = $text->get_chars (0, -1);<br /> $fp = fopen ($filePath, 'w');<br /> fwrite ($fp, $str);<br /> fclose ($fp);<br /> }<br /> return;<br />}<br />$window->show_all ();  // 显示窗体内的所有控件<br />gtk::main (); // 最重要的一句,不可少的<br />?> </code></p>