窗口编程的又一选择
如果你不想使用命令行程序,那么最好的选择就是图形用户界面。而如果你的程序既想运行于UNIX、LINUX这种*NIX系统,又想运行于WINDOWS呢?很多人的第一反应:JAVA!
Oh!No!我不想用,为什么?并不是我排斥JAVA,而是我不想在WINDOWS下启动那该死的JRE,它会让我的系统缓慢异常。而且JAVA在FreeBSD下的表现让我失望。虽然在LINUX上它是很棒的。
为什么不试试GTK呢?呵呵,GTK?用过GNOME的人一定都知道这是什么玩意,很多GNOME下很不错的工具都是用的这个库编写的UI。关于什么是GTK我不想解释,而且网上的资料太多,就少一些信息冗余吧。下面看一个程序,大家猜猜它是用什么语言写的:
这是程序在Windows下的运行效果:

呵呵简单吗?你可以一个字都不改动直接在Linux下得到同样的窗体。真正的“一次编写,处处运行!”比JAVA的“一次编译,处处运行!”还快,省得编译了。
如果有人对GTK的效率表示怀疑,那你大可以放心。GIMP不知道有没有人用过~~~号称LINUX下的PHOTOSHOP。插件比PHOTOSHOP还要多,处理出来的效果还要花哨,还是自由软件。它就是使用GTK库的~~~
准备写一个繁简转换程序,就用这个~~~(注意是繁简转换,不是GB《=》BIG5转换。我发现网上超过90%的文章都把这两个概念弄混淆了)
关于GTK运行库和GIMP可以到我的站上下 http://xxiyy.com/。PHP-GTK我还没有整理,而且安装起来也很麻烦。我打算等软件写好了,做个自动安装包来用。
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();
?>
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下的运行效果:
呵呵简单吗?你可以一个字都不改动直接在Linux下得到同样的窗体。真正的“一次编写,处处运行!”比JAVA的“一次编译,处处运行!”还快,省得编译了。
如果有人对GTK的效率表示怀疑,那你大可以放心。GIMP不知道有没有人用过~~~号称LINUX下的PHOTOSHOP。插件比PHOTOSHOP还要多,处理出来的效果还要花哨,还是自由软件。它就是使用GTK库的~~~
准备写一个繁简转换程序,就用这个~~~(注意是繁简转换,不是GB《=》BIG5转换。我发现网上超过90%的文章都把这两个概念弄混淆了)
关于GTK运行库和GIMP可以到我的站上下 http://xxiyy.com/。PHP-GTK我还没有整理,而且安装起来也很麻烦。我打算等软件写好了,做个自动安装包来用。
浙公网安备 33010602011771号