窗口编程的又一选择

如果你不想使用命令行程序,那么最好的选择就是图形用户界面。而如果你的程序既想运行于UNIX、LINUX这种*NIX系统,又想运行于WINDOWS呢?很多人的第一反应:JAVA!

Oh!No!我不想用,为什么?并不是我排斥JAVA,而是我不想在WINDOWS下启动那该死的JRE,它会让我的系统缓慢异常。而且JAVA在FreeBSD下的表现让我失望。虽然在LINUX上它是很棒的。

为什么不试试GTK呢?呵呵,GTK?用过GNOME的人一定都知道这是什么玩意,很多GNOME下很不错的工具都是用的这个库编写的UI。关于什么是GTK我不想解释,而且网上的资料太多,就少一些信息冗余吧。下面看一个程序,大家猜猜它是用什么语言写的:
<?php
if (!class_exists('gtk'))
{
  
if (strtoupper(substr(PHP_OS, 0,3== 'WIN'))
    dl(
'php_gtk.dll');
  
else
    dl(
'php_gtk.so');
}

function delete_event()
{
  
return false;
}

function shutdown()
{
  print(
"Shutting down");
  gtk::main_quit();
}

function hello()
{
  global $window;
  print 
"Hello World";
  $window
->destroy();
}

$window 
= &new GtkWindow();
$window
->connect('destroy''shutdown');
$window
->connect('delete-event''delete_event');
$window
->set_border_width(10);

$button 
= &new GtkButton('Hello World!');
$button
->connect('clicked''hello');
$window
->add($button);

$window
->show_all();

gtk::main();

?>

这是程序在Windows下的运行效果:
gtk.JPG
呵呵简单吗?你可以一个字都不改动直接在Linux下得到同样的窗体。真正的“一次编写,处处运行!”比JAVA的“一次编译,处处运行!”还快,省得编译了。
如果有人对GTK的效率表示怀疑,那你大可以放心。GIMP不知道有没有人用过~~~号称LINUX下的PHOTOSHOP。插件比PHOTOSHOP还要多,处理出来的效果还要花哨,还是自由软件。它就是使用GTK库的~~~

准备写一个繁简转换程序,就用这个~~~(注意是繁简转换,不是GB《=》BIG5转换。我发现网上超过90%的文章都把这两个概念弄混淆了)

关于GTK运行库和GIMP可以到我的站上下 http://xxiyy.com/。PHP-GTK我还没有整理,而且安装起来也很麻烦。我打算等软件写好了,做个自动安装包来用。

posted on 2005-06-02 16:13  mikespook  阅读(1323)  评论(6)    收藏  举报

导航