用PHP开发GUI

2016-01-29 14:40 187 1 收藏

用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

来源:https://www.tulaoshi.com/n/20160129/1493887.html

延伸阅读
标签: PHP
WAP(无线通讯协议)是在数字移动电话、个人手持设备(PDA等)及计算机之间进行通讯的开放性全球标准协议。随着无线通讯的不断发展,静态的WAP页面在很多方面已经不能满足用户个性化的要求,因此开发者可以在WAP服务器端使用诸如PHP等语言产生动态的WML页面,来满足用户的需要。 WAP的应用结构非常类似于Internet,一个典型的...
标签: PHP
原文:http://www.blogjava.net/forget/archive/2006/06/17/53462.aspx 在php中输出返回上一级的代码: echo "<a href=".$_SERVER["HTTP_REFERER"]."点击这里返回</a"; 在wap中的代码是: <?php @header("Content-Type:text/vnd.wap.wml"); ? <?xml version="1.0"...
编写Eclipse插件的方法很简单,你只需要编写一个应用程序,并把它"添加"到Eclipse上。但是与编写音乐类似,在能够创作一部著作之前,首先必须学习大量的相关知识。 本文将讨论少许几个简单的GUI元素: · 工具条按钮 · 菜单项 · 对话框 为了使用这些元素,我们将稍微修改已有的插件,顺便编写一个可供使用的工具类。 扩展点(Extensi...
标签: PHP
  Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。 一般来说,在网站上某一个页面中的变量(指服务器端变量,下同)是不能在中用的,有了session就好办了。session中注册的变量可以作为全...
标签: PHP
PHP的面向对象编程:开发大型PHP项目的方法(一) 这篇文章介绍了在PHP中的面向对象编程(OOP,Object Oriented Programming)。我将向你演示如何通 过使用一些OOP的概念和PHP的技巧来减少编码和提高质量。祝你好运! 面向对象编程的概念: 不同的作者之间说法可能不一样,但是一个OOP语言必须有以下几方面: 抽...

经验教程

881

收藏

10
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部