tk

require 'tk'
root = TkRoot.new { title "Ex1" }
TkLabel.new(root) {
  text  'Hello, World!'
  pack  { padx 15 ; pady 15; side 'left' }
}
Tk.mainloop

image

wxRuby3

概述

wxRuby3是一个针对Ruby的跨平台GUI库,基于成熟的针对C++的wxWidgets GUI工具包。它尽可能地使用本地小部件,为Windows、OS X和Linux/GTK上的GUI应用程序提供正确的外观、感觉和行为。wxRuby旨在为在Ruby中开发专业标准的桌面应用程序提供一个全面的解决方案。

require 'wx'

Wx::App.run do
  Wx::Frame.new(nil, title: 'Hello world!').show
end

gem install wxruby3

image

require 'wx'

class TheFrame < Wx::Frame
  def initialize(title)
    super(nil, title: title)
    panel = Wx::Panel.new(self)
    button = Wx::Button.new(panel, label: '单击我')
    button.evt_button(Wx::ID_ANY) { Wx.message_box('你好,很高兴认识你', 'Button sample') }
  end
end

Wx::App.run { TheFrame.new('Hello world!').show }

显示窗口

image

require 'wx'
Wx::App.run { Wx::Frame.new(nil, title: '你好,我的第一个wxruby').show }

frame

require 'wx'

class MyApp < Wx::App
  def initialize
    super
    @frame = nil
  end
  attr_reader :frame
  
  def on_init
    @frame = Wx::Frame.new(nil, title: '你好,我的第一个wxruby')
    @frame.show
  end
  
  def on_exit
    puts 'Exiting.'
  end
end
MyApp.run