php开发示例,用PHP开发GUI(一个简单的例子)-PHP教程,PHP应用

环境:w2k+php4.3.1+php/gtk0.5.2

一个简单的记事本(只可以打开文件进行修改)

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);

return $filepath;

}

}

function savefile ()                // 保存文件的函数

{

global $filepath, $text;

if (is_file ($filepath))

{

$str = $text->get_chars (0, -1);

$fp = fopen ($filepath, w);

fwrite ($fp, $str);

fclose ($fp);

}

return;

}

$window->show_all ();             // 显示窗体内的所有控件

gtk::main ();                      // 最重要的一句,不可少的

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值