无意中发现了Ruby写的GUI黑白棋游戏(让我想起了当年的文曲星)!
把脚本下载以后,发现没有tk84.dll,网上找资料,发现需要安装叫ActiveTcl的组件。
可以在下面地址下载:
[url]http://www.activestate.com/Products/ActiveTcl/[/url]
安装ActiveTcl后,可以在bin目录下找到tk84.dll文件,把这个文件复制到Ruby的lib目录下。然后就OK了。
然后又找了点资料来系统的说明下Ruby的GUI程序开发:
1. 首先我们需要一个TK文件。
下载地址在上面给出的链接,比较郁闷的是PR2ED说TK是随Ruby一起发行的,可是为什么我需要另外安装呢?谁给个解释?
TCL全称是tool command language,也就是工具命令语言.他是一种解释型脚本语言.弱类型,大小写敏感.一般在linux下应用较多,不过在windows下面也有移值版本. TCL/TK的官方编辑环境是activestate activetcl。在Proggramming Ruby第二版的十九章也介绍了TK,但是没有比较全面的Ruby/TK文档。
2. 然后我们就可以编写一些简单的应用来说明了:
下面是两个小例子:
1).
require ‘tk’
TkLabel.new{text ‘Hello,world’;pack}
Tk.mainloop
2).
require 'tk'
TkButton.new do
text "EXIT"
command { exit }
pack('side'=>'left', 'padx'=>10, 'pady'=>10)
end
Tk.mainloop
感觉还挺好,不知道编写复杂的怎么样?主要是没有文档,比较麻烦。
3).
下面这段程序加入了事件处理:
require 'tk'
packing = { 'padx'=>5, 'pady'=>5, 'side' => 'left' }
checked = TkVariable.new
def checked.status
value == "1" ? "Yes" : "No"
end
status = TkLabel.new do
text checked.status
pack(packing)
end
TkCheckButton.new do
variable checked
pack(packing)
end
TkButton.new do
text "Show status"
command { status.text(checked.status) }
pack(packing)
end
Tk.mainloop
就以上这些了。。。。。。作为一个了解。让更多的人知道Ruby应用的范围。
想了解更多的Ruby TK用法参考<Programming Ruby 2ED>
©著作权归作者所有:来自51CTO博客作者blackanger的原创作品,如需转载,请注明出处,否则将追究法律责任
RubyGUITK