FxRuby
FxRubyはRubyのGUIツール、ライブラリです。もともとRubyが好きでやっていたのですが、GUIを作ってみたいなぁと思った時に、ふと目に入ったのがこれでした。Rubyはスクリプト言語なのでGUIアプリケーションでも簡単なコードの記述で作ることができます。
FxRubyの導入
Rubyとgemが入っている前提でのインストールの方法を示します。RubyはこちらからDLできます。
まず、コマンドプロンプトを開き、
gem search fxruby
と入力
するとこんな具合に
C:\Users\User>gem search fxruby
*** REMOTE GEMS ***
fxruby (1.6.33 ruby x64-mingw32 x86-mingw32, 1.6.20 universal-darwin-10 x86-linux, 1.6.19 universal-darwin-9 x86-mswin32-60, 1.6.14 mswin32)
fxrubyを発見
C:\Users\User>gem install fxruby
Successfully installed fxruby-1.6.33-x64-mingw32
Parsing documentation for fxruby-1.6.33-x64-mingw32
Done installing documentation for fxruby after 2 seconds
1 gem installed
これでインストールは完了です。
Hello!プログラム
どのようなプログラム?
hello, Worldのプログラムはいくらでもバリエーションがあるのですが、今回はメッセージボックスを使ってHello!と表示させましょう。
コーディング
ではさっそくプログラムを記述してみましょう。こちらにドキュメンテーションありますので、是非参考になさってください。
まず、
require "fox16"
include "Fox"
という感じに、プログラムの先頭で”fox16”のなかのFoxモジュールをインクルードします。Foxモジュールの中には
FXMainWindow
というMainWindowを作るクラスがあります。
app=FXApp.new
main=FXMainWindow.new(app, "Hello", :width=>323, :height=>200)
app.create
main.show(PLACEMENT_SCREEN)
app.run
というコードでウィンドウが作成されます。単にこの中にボタンを配置しても良いのですが、オブジェクト指向スクリプト言語の神髄を味わうため、これを継承してMyHelloというクラスを作りましょう。
class MyHello < FXMainWindow
def initialize(app, title="Hello!")
# main is window class
main=super(app, title, :width=>323, :height=>200)
btnHello=FXButton.new(main, "Click and say Hello!") # create the button
# Event
btnHello.connect(SEL_COMMAND) do |sender, sel, data|
msgBox=FXMessageBox.new(btnHello, "Hello from FxRuby", "Hello!", :opts=>MBOX_OK)
msgBox.execute
end
end
end
(ウィンドウのサイズを黄金比に近似させていたのがお分かりになりましたか?)では、これらのことを踏まえて最終的なコードととしては
require "fox16"
include Fox
class MyHello < FXMainWindow
def initialize(app, title="Hello!")
main=super(app, title, :width=>323, :height=>200)
btnHello=FXButton.new(main, "Click and say Hello!", :opts=>BUTTON_NORMAL|LAYOUT_CENTER_X|LAYOUT_CENTER_Y)
btnHello.connect(SEL_COMMAND) do |sender, sel, data|
msgBox=FXMessageBox.new(btnHello, "Hello from FxRuby", "Hello!", :opts=>MBOX_OK)
# FXMessageBox.question(main, MBOX_OK, "Hello", "Hello")
msgBox.execute
end
end
end
app=FXApp.new
main=MyHello.new(app)
app.create
main.show(PLACEMENT_SCREEN)
app.run
こうなります。実行すると
Hello!というタイトルのウィンドウが表示され、ボタンを押すとメッセージボックスが表示されます。
最後に
今回、このような記事を書かせていただいたのですが、実際私はFxRubyを使ってまだ1か月もたっていません。それゆえこの記事を更新したり、別の記事でFxRubyの話題を取り上げるかもしれません。日本語の資料があまりないため、手探りでFxRubyを習得していこうと思います!