Rubyの魔神 このページをアンテナに追加 RSSフィード

   「Ruby」は宝石の魔神のイメージ(The Jinn of the Ruby)
[DMY] [VB] [VB6] [Python] [C#] [Android] [電子工作] [個人メモ] [仕事メモ] [アイデア] [TstLink] [CE] [LTSA]
[自動化] [Qt] [OCaml] [3Dプリンタ] [TOOLS] [RAA] [Forge]
  [機能別索引] [逆引きRuby] [マニュアル] [るびま] [標準ライブラリ] [るりまサーチ] [Try! Ruby] [PRaggerまとめ] [ピジョン・ブラッド]
   [Rubyコーディング規約] [プログラミングのオキテ] [Rubyist SNS] [TOOLBIS]
   [RubyネットワークProg] [druby] [コードなにがし] [RDocテンプレ] [Ruby/Tkサンプル]
   [WAVE] [Xperia] [github] [twitterなど] [EA] [マクロ]

2008-07-15

Ruby/Tkをcygwinで動かしてみる

16:26 | Ruby/Tkをcygwinで動かしてみる - Rubyの魔神 を含むブックマーク はてなブックマーク - Ruby/Tkをcygwinで動かしてみる - Rubyの魔神 Ruby/Tkをcygwinで動かしてみる - Rubyの魔神 のブックマークコメント

試しに記載のサンプルソースをcygwinで動かしたらちゃんとwindowが出たので

びっくり

tk.rb

#!/usr/bin/ruby
require 'tk'

label = TkLabel.new(
  'text' => 'Hello World',
  'width' => 22,
  'height' => 5
)
label.pack
Tk.mainloop

#!/usr/bin/ruby

require 'gtk2'

window = Gtk::Window.new
window.signal_connect('destroy'){Gtk.main_quit}
label = Gtk::Label.new('Hello World')
label.set_size_request(160, 80)
window.add(label)
window.show_all
Gtk.main

gtkのサンプルは以下のエラーが出て動かなかった

./gtk2.rb:5: uninitialized constant Gtk (NameError)

from ./gtk2.rb:3:in `require'

from ./gtk2.rb:3

Cygwinの中のrubyのバージョンは1.8.7でした

ruby 1.8.7 (2008-06-20 patchlevel 22) [i386-cygwin]


Ruby/Tk サンプルプログラム集

rubytk

サンプル色々

※サンプルソースをcygwinで動かす時は最初に以下の行が必要

#!/usr/bin/ruby

Ruby/TkをWindowsで動かしてみる

09:43 | Ruby/TkをWindowsで動かしてみる - Rubyの魔神 を含むブックマーク はてなブックマーク - Ruby/TkをWindowsで動かしてみる - Rubyの魔神 Ruby/TkをWindowsで動かしてみる - Rubyの魔神 のブックマークコメント

WindowsTkサンプルを動かすと以下のエラーがでます。

「tk84.dllがありません」

tk84.dll�����������障�����

自宅でタートルグラフィックスを楽しむには

上記で調べてActiveTclを入れてみます。

最初まちがえてActiveTcl 8.5.2.0を入れると動きませんでした。ActiveTcl 8.4.19.0を入れましょう。

ActiveTclを入れてLibをコピーするとWindowsでも動きました。

LinuxWindowsの両方で動くrubyGUIプログラムが書けるかも。

ボタンとテキストボックスとファイル選択くらいがあれば十分なのですが。


Ruby/TkをLinuxで動かしてみる

14:46 | Ruby/TkをLinuxで動かしてみる - Rubyの魔神 を含むブックマーク はてなブックマーク - Ruby/TkをLinuxで動かしてみる - Rubyの魔神 Ruby/TkをLinuxで動かしてみる - Rubyの魔神 のブックマークコメント

Linuxで動かすほうが難しいみたい

http://osdir.com/ml/lang.ruby.japanese/2006-09/msg00072.html

上記によると以下の感じでrubyのコンパイルがいりそう

./configure --prefix=/usr/local --enable-pthread --enable-tcltk-framework

これをやってActiveTcl 8.4.19.0をいれてもやっぱり以下のエラーになりました

/tk.rb:4: uninitialized constant TkLabel (NameError)

from ./tk.rb:2:in `require'

from ./tk.rb:2


ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-linux]

ruby/ruby-1.8.6/ext/tk/README.ActiveTcl を読み以下でやってみる。

./configure --with-tcl-dir=/opt/ActiveTcl-8.4 --with-tk-dir=/opt/ActiveTcl-8.4 --with-tcllib=tclstub8.4 --with-tklib=tkstub8.4 --enable-tcltk-stubs

さらに以下の方法で tk.rbを動かしてやっと動きました。

LD_LIBRARY_PATH=/opt/ActiveTcl-8.4/lib:$LD_LIBRARY_PATH ruby ./tk.rb

結局手順としては

1.Linuxrubyのソースをダウンロードする。

2.ActiveTcl 8.4を入れる

以下のサイトを参照。linux版をいれる

http://yoshio.sist.chukyo-u.ac.jp/courses/elementary-programming/programming2AB-06/home_use/turtle_graphics.html

3.rubyを以下のオプション付きでコンパイル

/opt/ActiveTcl-8.4 は ActiveTcl-8.4をいれたディレクトリ

./configure --with-tcl-dir=/opt/ActiveTcl-8.4 --with-tk-dir=/opt/ActiveTcl-8.4 --with-tcllib=tclstub8.4 --with-tklib=tkstub8.4 --enable-tcltk-stubs

make

make install

4.ライブラリのパスを追加して起動

LD_LIBRARY_PATH=/opt/ActiveTcl-8.4/lib:$LD_LIBRARY_PATH ruby ./tk.rb

こんな感じでした。

linuxの方が簡単にRuby/Tkが動くと思ってたけど、逆にWindowsで動かすより大変でした


最後のは、/etc/profile

export LD_LIBRARY_PATH=/opt/ActiveTcl-8.4/lib:$LD_LIBRARY_PATH

を追記しておきました。

Ruby/Tk入門サイト

17:18 | Ruby/Tk入門サイト - Rubyの魔神 を含むブックマーク はてなブックマーク - Ruby/Tk入門サイト - Rubyの魔神 Ruby/Tk入門サイト - Rubyの魔神 のブックマークコメント

http://www.mnet.ne.jp/~tnomura/rubytk.html

早速作ってみた、カウントだけするプログラム

#!/usr/local/bin/ruby
                                                                                
require 'tk'
                                                                                
count=0
                                                                                
l=TkLabel.new(nil,'text'=>'').pack
TkButton.new(nil,'text'=>'count','command'=>proc{count=count+1;l.text=count.to_s}).pack
TkButton.new(nil,'text'=>'quit','command'=>proc{exit}).pack
                                                                                
Tk.mainloop

Ruby/Tkでファイルを開くダイアログ

18:19 | Ruby/Tkでファイルを開くダイアログ - Rubyの魔神 を含むブックマーク はてなブックマーク - Ruby/Tkでファイルを開くダイアログ - Rubyの魔神 Ruby/Tkでファイルを開くダイアログ - Rubyの魔神 のブックマークコメント

以下のサイトを参考にしてみました。

http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyTkTut%3A%3A%A4%BD%A4%CE%C2%BE%A4%CE%B5%A1%C7%BD

#!/usr/local/bin/ruby
                                                                                
require 'tk'
                                                                                
l=TkLabel.new.pack
                                                                                
TkButton.new {
  text "Open"
  command { l.text= Tk.getOpenFile}
  pack
}
                                                                                
Tk.mainloop
トラックバック - http://ruby.g.hatena.ne.jp/garyo/20080715