前言:
wxRuby是一个开放源代码的GUI工具箱,它的底层基于跨平台由c++写成的wxWidgets。wxRuby能帮助你使用Ruby快速的创建GUI程序。 wxWidgets是一个成熟的跨平台GUI工具箱,它使用本地GUIwidgets,使得wxRuby也可以跨平台使用。 本文只为能让大家快速建立一个印象,想深入研究的请参考附上的原文链接。 项目主页:http://wxruby./wiki/wiki.pl 下载地址:http:///frs/?group_id=35 一、Installing wxRuby2 原文: http://wxruby./wiki/wiki.pl?Installation wxruby最新的版本是wxruby2,但这实际上还是一个预览版,更稳定的版本是0.6.0 但不管了,我们要乐于尝试新的东西,安装wxRuby2最简单的办法是使用[rubygems], 如果你的机器上已经安装了rubygems: 1、gem install wxruby2-preview 等上一会儿,rubygems会显示wxruby相关的gems列表,选择一个与你的平台相符的。 然后rubygems会用一点时间下载gem... ... 2、装好之后你一定迫不及待的想运行一个ruby写的gui来看一下是什么样子,这儿有很多例子与gems一起被安装在你的ruby目录下,假定你的ruby在C盘下面,那么例子的路径如下(用unix与linux都是高手,不用我说太多废话吧): C:\ruby\1.8.x\lib\gems\1.8\gems\wxruby2-preview-xxx-x.x.x\samples. 好,先运行一下来看一下吧, 转到命令行下面,输入下面的命令: ruby -rubygems C:\ruby\1.8.x\lib\gems\1.8\gems\wxruby2-preview-xxx-x.x.x\samples\calendar\calendar.rb 哈哈,看到了吧 3、DIY欲望特别强烈的unixer&linuxer可能希望从源码来编译wxruby,请参考上面附上的原文 二、开始写我们的自己的第一个基于ruby的GUI程序 原文: http://wxruby./wiki/wiki.pl?Getting_Started 请留意:这个例子是在windows xp下面实现的,在unix/linux下面应该也没有问题,但某些细节可能有些差异。 1、开门见山吧,直接写第一个程序,先别拿那些概念来烦你
2、解释一下,开头的引入,我们上面安装wxruby的时候,选择是wxruby2,所以应该注释掉第一行,直接使用
就可以了 如果你选择的版本是0.6.0,那么你应该使用
3、这一行
很多ruby coder应该很熟悉了。 每个用wxruby写的代码文件中都应该包含一个继续了App的类。它负责程序的入口及gui事件的处理(好像是java的main()是不是?) 下面的
在这个例子中,我们自己的 on_init()方法创建了一个框,并且显示出来。 4、事实上现在的代码已经可以执行了,你切换到代码所在的目录下面: ruby -rubygems minimal_app.rb 如果没有意外的话,应该显示出一个框,虽然什么都没有,但我们也感到很高兴 5、好,再详细说一下
Frame.new() 调用了Frame这个类的构造器。 第一个参数nil,表示要构造的Frame是没有父窗口的,如果有的话,应该在这儿传送。 第二个参数 -1,这是一个标识,这个标识的作用放到后面再说吧 第三个参数"The Bare Minimum", 这是Frame的标题,并且会显示在任务栏上 第四个参数在本例中省略了,应该类似于这样"Point.new(100,100)",定义了Frame在桌面上出现的位置. 第五个参数在本例中省略了,应该类似于这样"Size.new(600,480)",定义Frame的初始大小 第六个参数也省略了,是关于窗体类似,默认的类型是"DEFAULT_FRAME_STYLE",关于这个参数更多东西,后面再了解吧。 好,你可以试一下这个有更多初始参数的Frame:
6、最后,
创建一个App的实例,并调用它的mailloop方法来显示GUI,这个方法其实做了很多事,不再详细说了。 7、好,现在总结一下,我们一共做了这么几步: require "wxruby" include Wx 创建一个继承 App的类 覆盖一个方法 on_init() 创建一个实例 调用main_loop() 方法 三、有了一个大致的了解后,读一下这个吧: http://wxruby./wiki/wiki.pl?Frames_(Part_1) 没有力气再翻译了。 |
|