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