仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1994|回复: 20
打印 上一主题 下一主题

[学习教程] PHP网页编程之用PHP开辟GUI

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:07:08 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
学会了PHP,那么学其他的语言,肯定速成,反过来也一样,如果你之前学过其他的语言,那么学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);
        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 ();                      // 最主要的一句,不成少的
?>
附:php/gtk设置装备摆设
实战PHP/GTK(转载)

刁馋 宣布于 2002-2-19 15:25 PHP编程 ←前往版面     

之前PHP被以为只能用来编写办事器真个CGI法式,假如说PHP可以开辟Windows下的GUI(图形用户界面)法式,你信任吗?比来,PHP的开辟小构成功开辟出了绑缚GTK+的PHP,那末就能够开辟Windows下的GUI法式了。

1、创立PHP/GTK运转情况:
其实GUI法式和通俗的PHPCGI法式没有甚么区分,不外是PHP/GTK法式由GTK的类来生成GUI界面罢了,他们一样是开放源代码,靠PHP来解析创立窗口。假如你已创立好了PHP的调试情况,那末装置PHP/GTK情况对照复杂:
1、下载php_gtk.dll(这个dll文件用于解析PHP源法式外面的GTK代码),下载后将其解压到PHP的扩大(extension)目次中;
2、下载其他PHP/GTK的dll文件(一共6个),将他们解紧缩到Windows的system32目次外面;
3、翻开php.ini,在扩大设置局部“Windows Extensions”最上面到场“extension=php_gtk.dll”的语句,建议先备份php.ini,防止修正掉败使得创立好的PHP运转情况作废;
如今就创立好了PHP/GTK的运转情况了。固然,你也能够不作第二步,而改成在每一个PHP/GTK法式源代码的第一行到场“dl('php_gtk.dll')”来静态加载GTK的撑持。
假如你还没有创立PHP运转情况,那末装置要加倍复杂:
1、下载全部PHP/GTK的绑缚撑持包,然后将他们解紧缩到c盘的PHP4目次上面;
2、将winnt目次上面的dll文件拷贝到Windows的system32目次中,将php.ini文件拷贝到Windows的目次中;
创立好了PHP/GTK的运转后,可以用号令行形式的PHP来运转一个PHP/GTK法式:在运转中输出“c:\php4\php -q gtkprogrampath”,个中“c:\php4\php”改成PHP.EXE的途径,“gtkprogrampath”就是PHP/GTK法式的途径。好比:“c:\php4\php -q c:\php4\samples\hello.php”将会运转PHP/GTK运转包中附带的例子“hello world”法式。

2、编译PHP/GTK法式:
假如你作出一个PHP/GTK的使用法式,还需求对方的电脑创立PHP的运转情况而且利用PHP号令行形式来解析才可以履行的话,那就过于庞杂了。那末怎样才可以编译一个PHP/GTK的法式呢?经由一番搜刮,笔者发明了PHPCompiler这个软件。
PHPCompiler由www.deskcode.com开辟(http://www.deskcode.com/phpcompiler),可以将PHP编译成为EXE可履行文件,内置了PHP的撑持,假如你要编译一个PHP/GTK法式,必需创立PHP/GTK的运转情况(参照后面的步调)。要编译一个PHP/GTK法式的步调以下:
1、翻开PHPCompiler(如图),在“Script to”选择但愿编译的PHP法式源代码,在“Destination”处选择编译胜利后的EXE文件的途径;
2、点击“Compile”按钮,会弹出一个对话框扣问利用的编译形式(假如是PHP/GTK法式就选择no,是纯真的PHPCGI法式就选择yes);
3、然后又会弹出一个对话框扣问是不是拷贝php4ts.dll文件到编译后的EXE文件的目次,选择yes。
经由下面的步调,一个PHP/GTK法式就胜利编译了,然而关于编译PHP/GTK法式还有几个需求注重的中央:
1、编译完成后的可履行文件假如需求履行,PC机下面必需具有GTK运转情况所需的几个dll文件(就是后面下载的那几个),假如需求作成使用法式,可以在装置的时分将几个dll文件拷贝到system32目次中(不外如许子法式也就不是“绿色软件”了^_^)。
2、PHPCompiler自己关于PHP的撑持十分好,然而有些人试过用一些需求扩大撑持的函数,好比“gzopen”等等,在编译之前还好好的,编译终了后就不克不及用了。其实编译完成后的可履行文件,相当于了只要默许的PHP撑持(连GTK撑持都没有了),所以假如在法式中使用了任何需求扩大撑持的函数,都必需静态的加载撑持函数的dll文件,好比“dl('php_gtk.dll')”,如许子编译完成后才不会失足。
3、运转一个编译后的可履行文件,城市先弹出一个DOS窗口,然后主动封闭,由于每一个GUI窗口都是经由过程GTK来“绘制”出来的,所以必需会有谁人窗口。
4、也许之前PHP还不克不及说是真实的OOP(面向对象法式)言语,然而到了PHP/GTK,任何一个窗口都由GTK对象来“绘制”,假如没有过硬的OOP功底,是很难写出GUI法式的。

3、PHP/GTK资本:
1、http://gtk.php.net:PHP/GTK的官方网站;固然说是官方网站,然而确粗陋的很,出了一个FAQ和邮件列表,几近找不就任何有效的器材了,
2、http://www.phpgtk.com:一个界面对照好的PHP/GTK网站,有最新的版本信息。
3、http://developer.gnome.org/doc/API/gtk/gtkobjects.html:PHP/GTK函数和类的大全/手册网站,外面有非常丰厚的PHP/GTK材料。
4、http://www.phpuk.org/gtk/:非官方版本的GTK手册网站,复杂易懂。

假如人人以为E文对照好看,也能够来zphp.com下载最新的PHP/GTK运转情况和撑持包。

在相册系统的开发上,因为采用的是团队分工合作方式,更让我明白了在一个团队之中,团队成员之间的交流沟通的重要性,如果没有很好的沟通交流,成员之间的任务没有分配好。
因胸联盟 该用户已被删除
沙发
 楼主| 发表于 2015-3-7 10:18:31 | 显示全部楼层
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-18 03:00

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表