注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

星期五

明天不上班

 
 
 

日志

 
 
关于我

一个特立独行的Java程序员,比较宅,上上网,写博客,听音乐,看电影。

网易考拉推荐

Ruby之wxRuby  

2012-02-13 20:59:23|  分类: Ruby |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
安装wxruby
gem install wxruby
如果你是ruby1.9
gem install wxruby-ruby19
具体讲解: http://wxruby.rubyforge.org/wiki/wiki.pl?Installation


如何写一个简单应用

require "wxruby"
include Wx
创建一个继承 App的类
覆盖一个方法 on_init()
创建一个实例
调用main_loop() 方法

具体讲解: http://wxruby.rubyforge.org/wiki/wiki.pl?Hello_World

写一个简单例子(抽取1-1000的随机数10个,总共10组,要求不能重复,类似于公司年会时的抽签)
Code

require "rubygems"
require "wx"

class MyFrame < Wx::Frame

@@array = (1..1000).to_a
@@i = 1

def initialize
super(nil, #Parent
:title => "Random Number", #Displays on top of window
:pos => [150, 25], #or Wx::DEFAULT_POSITION
:size => [420, 300] #or Wx::DEFAULT_SIZE
)

panel = Wx::Panel.new(self) #Parent = self = this Frame

button = Wx::Button.new(
panel, #Parent
:label => "Random", #Label
:pos => [20, 5],
:size => Wx::DEFAULT_SIZE,
:style => Wx::RA_SPECIFY_COLS, #:major_dimension value applies to columns
)


evt_button(button) { | event | on_click_button(event) }

clear_button = Wx::Button.new(
panel, #Parent
:label => "Clear", #Label
:pos => [20, 40],
:size => Wx::DEFAULT_SIZE,
:style => Wx::RA_SPECIFY_COLS, #:major_dimension value applies to columns
)

evt_button(clear_button) { | event | on_click_clear_button(event) }

@text_widget = Wx::StaticText.new(
panel, #Parent
:label => "",
:pos => [120, 5],
:size => Wx::DEFAULT_SIZE
)
show #equivalent to self.show, makes the frame visible
end

def on_click_button(cmd_event)
text = "";
1.upto(10){
ele = @@array.sample
text += ele.to_s + " "
@@array.delete(ele)
}

@text_widget.label += @@i.to_s + ": " + text + "\n"
@@i += 1
end

def on_click_clear_button(cmd_event)
@text_widget.label = ""
@@array = (1..1000).to_a
@@i = 1
end

end

class MinimalApp < Wx::App
def on_init
MyFrame.new
end
end

MinimalApp.new.main_loop #main_loop() tells wxruby to start reacting
#to radio button selections, button clicks, etc.
#on your App.

运行效果:(使用random 按钮生成抽取结果10个,使用Clear清除结果,重新开始)
Ruby之wxRuby - 星期五 - 星期五

参考资料:
http://ilgnep.iteye.com/blog/687320
http://www.ruby-forum.com/topic/205457
  评论这张
 
阅读(863)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017