用Ruby来开发GUI程序

无意中发现了Ruby写的GUI黑白棋游戏(让我想起了当年的文曲星)!
把脚本下载以后,发现没有tk84.dll,网上找资料,发现需要安装叫ActiveTcl的组件。
可以在下面地址下载:
安装ActiveTcl后,可以在bin目录下找到tk84.dll文件,把这个文件复制到Rubylib目录下。然后就OK了。
然后又找了点资料来系统的说明下RubyGUI程序开发:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1.       首先我们需要一个TK文件。

下载地址在上面给出的链接,比较郁闷的是PR2EDTK是随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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ShenmeGUI是一套受Shoes启发而诞生的GUI工具,拥有相似的DSL语法,使用HTML构建界面,并实现了前后端数据的双向绑定,可以便捷地实现一些轻量的GUI应用。安装执行 gem install shenmegui 。示例代码require 'shenmegui' ShenmeGUI.app do   form(title: 'Your Application') do     button('alert').onclick do       alert 'Hello World!'     end     button('open an image').onclick do       path = get_open_file_name       @t.text = path       @i.src = path     end     stack do       label 'image path:'       @t = textarea '', width: '100%'     end     @i = image "http://7jpqbr.com1.z0.glb.clouddn.com/bw-2014-06-19.jpg"     @p = progress(75)     button(' ').onclick { @p.percent  = 5 }     button('-').onclick { @p.percent -= 5 }   end end ShenmeGUI.start!将会产生如图所示的界面:如未自动打开浏览器,可手动打开程序代码同目录的index.html。button定义按钮,并通过onclick绑定上了点击事件。第一个按钮弹出一个对话框,第二个按钮弹出一个打开文件的对话框,将文件路径写到下方定义的textarea里,并改变image的src以显示这个图片。下方的两个按钮演示了进度条的增减。系统需求Ruby版本大于等于2.0.0。因为前后端通讯使用了websocket,所以需要使用支持websocket的浏览器。目前打开文件对话框只实现了windows版本,在Linux等使用会出错,以后会尝试在其他系统实现,除此之外对系统没有要求。 标签:ShenmeGUI  GUI开发框架
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值