ARGENTO CUORE

Category : GUI関係

--.--.--[--] スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2009.12.20[日] Ruby/Tkにハマってみた

Androidの開発環境はコマンドラインで操作するものか、Eclipse、NetBeansにプラグインを入れて動作させるか、の二つの方法がありますが、NetBeansとか大きいし、コマンドラインで動かすのもたるいしってことで、ミニマムなフロントエンドをつくろうと思いましたらば、いつもはRuby/GTKで攻めるところを、何の思いつきかRuby/Tkで書いてみようーとなり、そのドキュメントの少なさに恐れおののく今日この頃であります。

ならば書こう! 間違いだらけ?のチュートリアル的な何かを!

http://ronor.web.fc2.com/rubytk/

↑でもまだ途中まで。
調べながら、動作確認しながら、理解を深めながら、なぜか真剣に極めようと突き進んでます。
スポンサーサイト

2009.11.02[月] ruby/gtk2の環境構築

xubuntu9.04にて。
tk8.5を本当は使う予定だったのですが、libtcltkが8.4にしか対応してない?みたいで、色々面倒そうなのでgtkを使うことに。
八年ほど前に初めてGTK+を触ったときに比べるとずいぶん様変わりしていて、GNOME2というGNOME向けのデスクトップ開発環境の中のコアライブラリとしてGTK+があるような感じ?みたいです。
まずは最小限の構成を知って、そこから出発。

synapticパッケージマネージャを使用してlibgtk2-rubyをインストールする。
自分の環境では、依存関係にあるパッケージとして、
libatk1-ruby1.8
iibcairo-ruby1.8
libgdk-pixbuf2-ruby1.8
libglib2-ruby1.8
libgtk2-ruby1.8
libpango1-ruby1.8
が同時にインストールされた。cairoは必ずしも動作に必須ではないみたいなのですが、パッケージマネージャがインストールしてくれました。

インストールしたパッケージの詳細は以下。
libatk1
ATKをruby用にバインドしたもの。UIコンポーネントへのインターフェースを提供するライブラリ。

libcairo
CAIROのrubyバインド。ベクトルベースの2DグラフィックスAPIを提供するライブラリ。るびまで紹介されている。

libgdk-pixbuf2
GdkPixbufのrubyバインド。画像を扱うライブラリ。

libglib2
GLibのrubyバインド。データ型やタイマー、パーサーや正規表現、メモリ操作等の低レベルな処理をまとめたライブラリ。プラットフォーム間の環境差を吸収するように作られている。

libgtk2
GTK2のrubyバインド。各種ユーザーインターフェースと、それらを操作するシグナルコールバックを提供するライブラリ。

libpango1
Pangoのrubyバインド。各国の言語に対応したテキスト、フォントを処理するライブラリ。

Ruby-GNOME2のサイトでは、最小限のパッケージ構成として、GLib2、ATK、GdkPixbuf2、Pango、GTK2が必要だと書かれている。

それぞれの依存関係は以下のようになっているみたい(Ruby-GNOME2のREADMEより)。
GLib:依存関係なし
ATK:GLibに依存
Pango:GLib、cairo(オプション)に依存
GdkPixbuf:GLibに依存
GTK:GLib、ATK、Pango、GdkPixbuf、cairo(オプション)に依存

るびまのRuby de GUIを見ると、必須ではないライブラリは、HTML、OpenGL、データベース、設定データの操作などのデスクトップアプリケーションを作る上で便利な機能を提供してくれているようです。

とりあえずruby/gtkのチュートリアルを見てhello.rbを作成。

1 =begin
2 hello.rb
3 =end
4
5 require 'gtk2'
6
7 button = Gtk::Button.new("Hello")
8 button.signal_connect("clicked") {
9 puts "Hello"
10 }
11
12 window = Gtk::Window.new
13 window.signal_connect("delete_event") {
14 puts "delete event occurred"
15 false
16 }
17
18 window.signal_connect("destroy") {
19 puts "destroy event occurred"
20 Gtk.main_quit
21 }
22
23 window.border_width = 10
24 window.add(button)
25 window.show_all
26
27 Gtk.main


$ruby hello.rbで実行

実行結果
hello.rbの実行結果

Scala Feed

scala feed

FC2カウンター

プロフィール

RoNor

Author:RoNor
得意呪文はScalaですって言えるようになるのが夢です。
デスマーチ中、パーティメンバーの防御力を向上させたりさせなかったり。

検索フォーム

QRコード

QRコード

Copyright © 2009-2010 ARGENTO CUORE and RoNor All rights reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。