Ruby 写的 GUI 黑白棋游戏
把脚本下载以后,发现没有 tk84.dll ,网上找资料,发现需要安装叫 ActiveTcl 的组件。
1.安装ActiveTCL 8.4.xx (TCL8.5是不行的)。
2.把TCL/bin目录下的TK84.dll拷贝到Ruby/lib下面去,就ok了。
Ruby目前的版本好像只认TK84.dll,有点不像话。
另,ActiveTCL8.4, 到这里找:
http://downloads.activestate.com/ActiveTcl/Windows/
安装 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>
本文出自 “{ :Alex Space => " Ruby Notes " } ” 博客,请务必保留此出处http://blackanger.blog.51cto.com/140924/24924