Shoes,Ruby GUI!

 Tk 总是报错,让我很不爽。

shoes今天逛InfoQ 的时候居然发现了Shoes,一个Ruby GUI 客户端。试了一下,比Ruby/Tk 好用。比如这个Tutorial 里面的例子。假设下面的代码保存在background.rb 里面。

background

 

安装Shoes 之后,用Shoes 打开这个.rb 文件就可以看到:

可能是由于刚出现的原因,响应还很慢(有人用"两百来行"编了个扫雷,鼠标点下去半天没反应)。但我相信它会引起又一轮Ruby 浪潮。

Shoes 并不是针对严谨的大规模GUI 应用,Shoes 应用一般都很灵巧。Shoes 的目标是让GUI 编程愉快、有趣。

Shoes 有本漫画教程NOBODY KNOWS SHOES,是why 大叔亲自写的。

一个GUI 应该包括显示和响应两方面元素。

Shoes 有10种元素用于显示:

  • para

para 是paragraph 的简写。你不必给它任何坐标或者尺寸参数。它会自动填充它所在的box。但可以为文本指定格式。比如:strong() 就是加粗,em() 是强调等。paragraph

  

还可以指定字体大小:title 什么的或者直接指定(如:para "Oh, to fling and be flung.", :size => 48)title

  • stacks & flows

stack 和flow 就是Shoes 里面的布局管理器。stack 把部件垂直摞在一起。flow 也是一种容器,只不过它在水平方向上摆放部件。如果一行摆不下了,它会另起一行。主窗口本身也是一个flow。flow 和stack 组合可以形成不同的布局。如果你是一个Web 开发者,你会发现它们很像CSS布局引擎。也不奇怪,Shoes 的作者why the lucky stiff说他深受Web 开发的影响。比如:后面你会看到的Shoes 的一种虚拟部件link。why the lucky stiff

当鼠标移动时,motion 会拿到你鼠标的坐标重新绘制圆。

  • button

一旦你点击button,就会激活它之后的block。

button

还可以这么写:

button 还有个方法focus()。如果用户敲了回车,按钮就会按下(手册上这么说,但我还没试成)。

  • image

图片可以是PNG, JPEG 或者GIF;可以从本地文件系统,也可以从Web 上载入。还可以通过:height 和:width调整图片大小。image

  • edit-line

text 把敲进编辑框的内容当作字符串返回。

  • edit-line

 

如果是多行,可以用edit-box。edit-box

  • linklink

  • background

一幅背景包括三个要素:颜色、明暗变化和图片。你可以用内建的颜色,也可以用rgb 方法。查看这里

  • url

 

url 还可以是正则表达式:

  • clearclear

 

此外,Shoes 还提供了click,animate等。clock

如果你感兴趣,应该去Shoebox 逛逛,N多牛人啊!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
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开发框架
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值