paip.php-gtk 桌面程序 helloworld总结

作者Attilax ,  EMAIL:1466519819@qq.com 

来源:attilax的专栏

地址:http://blog.csdn.net/attilax

用php写桌面程序的最大最大最大好处就是那是脚本,灵活,,

随时修改,无需编译..方便..如果需要加密也能可以用zend ...

A.另外,有IDE支持可视化拖拉式编程..也是很方便阿..

B.PHP世界流行度高,网上代码大把的。

C.体积小,无需安装,绿色软件。。

D.PHP也是全能型实用性语言,扩展度高。。

E.跨平台,PHP跟GTK都可以运行在LINUX上..

当然AHK也不错,不过无法IDE可视化界面编程,并且难实现数据库编程,难以WEB编程...

按键精灵,也其实不错,不过是国内流行,没有世界流行度

易语言,快手aauto则是编译型语言..并且只是国内流行,没有世界流行度

1.下载php 5.2.5 ,gtk 扩展  PHP-GTK 2.0.1 ,  GTK+ 2.12.8

-------------------------------------------------------------------------

从http://gtk.php.net/docs.php下载 。。。全套SDK包。。

php-gtk-2.0.1 Windows binary pack - 16-May-2008   (7.5M,这个主要是PHP+PHP-GTK基础包+GTK)

php-gtk-2.0.1 Windows binary extensions pack - 16-May-2008  (3M 这个主要是PHP-GTK其它扩展,可视化界面必备)

总共约10M大小。。。

2.下载 JeCat PHP 开发工具箱  (40M)

-----------------------------------------------

里边有个Glade 3 GUI设计工具 ..用来可视化拖拉界面必备。。

虽然JCAT框架也不错。但是已经停止维护,且MS 是MVC式的,使用成本高,文档缺少。直接用原生GTK框架就好。

3.使用Glade 3 GUI设计工具建立一个界面halo.glade文件

-----------------------------------------------------------

先拖拉一个WINDOWS窗体,再一个GtkLayout布局容器(必备,不然直接放控件会充满整个窗口),再拉一个BUTTON上去...

----------查看它生成的代码是这样的。。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">

<!--Generated with glade3 3.4.3 on Sat Sep 14 23:09:48 2013 -->

<glade-interface>

  <widget class="GtkWindow" id="window1">

    <child>

      <widget class="GtkLayout" id="layout1">

        <property name="visible">True</property>

        <child>

          <widget class="GtkButton" id="button1">

            <property name="width_request">114</property>

            <property name="height_request">36</property>

            <property name="visible">True</property>

            <property name="can_focus">True</property>

            <property name="receives_default">True</property>

            <property name="label" translatable="yes">button</property>

            <property name="response_id">0</property>

          </widget>

          <packing>

            <property name="x">174</property>

            <property name="y">51</property>

          </packing>

        </child>

      </widget>

    </child>

  </widget>

</glade-interface>

4.建立一个start.php

----------------------------

<?php 

    $glade = new GladeXML('halo.glade');

  

 $window = $glade->get_widget('window1');

// $window->set_default_size(460,260);     // 设置窗体的大小

//$window->set_title("Hello World"); 

 echo " c99 load ok"; 

  $window->show_all();  

//Start the main loop

   Gtk::main();

 

?>

5.运行程序

--------------

.\php-gtk2\php.exe  .\Start.php

GTK是C写的,速度很快,,立马出来..比WinBinder快好多..

paip.php-gtk 桌面程序 helloworld总结的更多相关文章

  1. Tkinter开发第一个桌面程序HelloWorld

    在Python3中是tkinter,Python2中是Tkinter Tkinter是Python 官方承认的标准 GUI 方案(de-facto standard),因为是Python自带安装,决定 ...

  2. Atitit.使用引擎加脚本架构的设计 使用php,js来开发桌面程序。。

    Atitit.使用引擎加脚本架构的设计 使用php,js来开发桌面程序.. 1. 引擎加脚本架构 跨平台,桌面与web的优势1 2. 架构桌面引擎(java,c#)2 3. php桌面引擎要点2 3. ...

  3. [IOS]从零开始搭建基于Xcode7的IOS开发环境和免开发者帐号真机调试运行第一个IOS程序HelloWorld

    首先这篇文章比较长,若想了解Xcode7的免开发者帐号真机调试运行IOS程序的话,直接转到第五部分. 转载请注明原文地址:http://www.cnblogs.com/litou/p/4843772. ...

  4. Java开发桌面程序学习(一)——JavaFx+Jfoenix初始以及搭建

    Java开发桌面程序学习(一)--JavaFx+Jfoenix初始以及搭建 前言 想做一个Java的桌面程序,但是,使用原生的Swing感觉又十分麻烦,那个布局都是拿代码设置,看着十分的乱,偶然的情况 ...

  5. 在桌面程序上和Metro/Modern/Windows store app的交互(相互打开,配置读取)

    这个标题真是取得我都觉得蛋疼..微软改名狂魔搞得我都不知道要叫哪个好.. 这边记录一下自己的桌面程序跟windows store app交互的过程. 由于某些原因,微软的商店应用的安全沙箱导致很多事情 ...

  6. 关于xfce桌面程序启动失败

    当双击桌面图标的时候,出现如下错误信息:Process org.xfce.FileManager exited with status 1 于是做出如下尝试: 1. ps aux | grep Fil ...

  7. 用node-webkit(NW.js)创建桌面程序

    以往写windows桌面程序需要用MFC.C#之类的技术,那么如果你只会web开发技术呢?或者说你有一个网站,但是你想把你的网站打包成一个桌面应用程序,该如何做呢? 答案就是用node-webkit这 ...

  8. web桌面程序之图标拖动排序的分析

    在web桌面程序里,图标拖动并重新排序是个比较常见的功能.这个功能我之前反复修改了好几遍,现在终于整理出了比较理想的解决思路,决定拿出来分享下. 这一功能主要有哪些难点呢?我总结了一下一共有2处难点: ...

  9. 在.net桌面程序中自定义鼠标光标

    有的时候,一个自定义的鼠标光标能给你的程序增色不少.本文这里介绍一下如何在.net桌面程序中自定义鼠标光标.由于.net的桌面程序分为WinForm和WPF两种,这里分别介绍一下. WinForm程序 ...

随机推荐

  1. js执行环境相关

    Js执行过程 如果一个文档中存在多个代码段 步骤一:读入第一个代码段(js引擎并非一行一行执行,而是一段一段分析执行) 步骤二:做词法分析和语法分析,有错则报语法错误(比如括号不匹配等),并跳转到步骤 ...

  2. js 触摸事件

    js触摸事件 应用在移动端 webkit内核都支持. 触摸事件api https://dvcs.w3.org/hg/webevents/raw-file/tip/touchevents.html 事件 ...

  3. ASP.NET之电子商务系统开发-4(二级分类)

    一.前言 继上次的订单,这是第四篇.记录一下分类和筛选.这功能是最后做的,因为我完全不懂其原理.后来通过同学的指导(一位很有天赋的同学,比我牛逼一个层次,同样是高三.:D),终于也是完成了.在写这篇博 ...

  4. 【原创】ASP.NET Web开发,实现打印Log日志,步骤详解

    添加Log需要四步: 一.引用log4net.dll,详见附件:http://pan.baidu.com/s/1c0hab2g 二.项目根目录下,添加 log4net.xml <?xml ver ...

  5. Shader程序中内置的状态变量

    经常在着色器程序需要访问一些全局状态,像当前的 model view projection 矩阵,当前环境的颜色诸如此类. 内置的矩阵 UNITY_MATRIX_MVP:当前模型 视窗 投影矩阵 UN ...

  6. POJ 1797 Heavy Transportation 最短路变形(dijkstra算法)

    题目:click here 题意: 有n个城市,m条道路,在每条道路上有一个承载量,现在要求从1到n城市最大承载量,而最大承载量就是从城市1到城市n所有通路上的最大承载量.分析: 其实这个求最大边可以 ...

  7. Problem E: Automatic Editing

    Problem E: Automatic EditingTime Limit: 1 Sec Memory Limit: 128 MBSubmit: 3 Solved: 3[Submit][Status ...

  8. Hadoop MR Job 关于如何控制Map Task 数量

    整理下,基本分两个方式: 一.对于大量大文件(大于block块设置的大小) 增大minSize,即增大mapred.min.split.size的值,原因:splitsize=max(minisize ...

  9. sqlserver 在将 nvarchar 值 'XXX' 转换成数据类型 int 时失败

    最近做oracle和sqlserver数据库兼容,感觉sqlserver真心没oracle好用,存储过程竟然只能返回int类型,疯了 疯了 存储过程的output及return的区别 sql取整 ce ...

  10. tomcat远程debug端口开启

    declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt ...