Ruby/Tk - FrontPage
ようこそ
ここにはRuby/Tkに関連する情報を記載していきたいと考えています. まだ情報は乏しいですが,少しずつでも増やしていければいいなと思います.
要望があれば (かつ,都合が許せば),随時,書き加えていくと思いますので, ruby-list ML などの場でリクエストしてください. ダイレクトメールでも構わないのですが,見落とす可能性が高いことは御了承ください.
永井 秀利 <nagai@ai.kyutech.ac.jp>
(九州工業大学大学院 情報工学研究院 知能情報工学研究系 知能情報メディア部門)
重要情報
(2014/10/19付) 大変遅くなってしまいましたが,Tcl/Tk8.6に対応しました. ただし,Ruby-1.9.3 は security fix しか取り込まれませんし, Ruby-2.0.0 にも新機能は取り込まれない (SEGV対策のみ取り込み) ですので, Tcl/Tk8.6の新機能への対応も含めたパッチをここに置いておきます. Ruby-2.1.3 用のパッチも置いておきますので,必要であればご利用ください.
- Ruby-1.9.3 p547 用パッチ tk-diff-ruby-1.9.3-p547.gz
- Ruby-2.0.0 p576 用パッチ tk-diff-ruby-2.0.0-p576.gz
- Ruby-2.1.3 p242 用パッチ tk-diff-ruby-2.1.3-p242.gz
2012/01/28現在,Ruby/TkでTcl/Tk8.6を使用することはできません.
Tcl/Tk8.6ではtailcallというコマンドが実装されて随所で使われるようになっているのですが,これが現在のtcltklibの処理と相性が悪く,正常に動作しません."tailcall cannot find the right splicing spot: should not happen!"と言われて Abort したり,結果が得られる前に呼出元に戻ってきたりします.具体例としては,Tk.getOpenFile がまともに動きません.
対策を考える必要があるのですが,少々面倒なことになりそう&私の手が回らないで,短期での解決は難しそうです.したがって,当面は known bug ということでTcl/Tk8.6の利用は避け,Tcl/Tk8.5か8.4を使うようにしてください.
現状 (2012/07/20時点) では,Tcl/Tk8.5の利用をお勧めします.拡張ライブラリ類もTcl/Tk8.4で使っていたものがそのまま使えると考えて良さそうです.ActiveTcl8.4に含まれていた拡張ライブラリをそのままActiveTcl8.5に持って行っても問題なく動くようです.
UbuntuでのRuby/Tk導入について
Tcl/Tkの設定情報ファイルであるtclConfigとtkConfigは,一般的には/usr/lib/tclConfig.shや/usr/lib/tkConfig.shとして置かれており, Ruby/Tkのインストール時にはそれらのファイルの内容を調べてコンパイルのための設定を行っています. ファイル配置が一般的であれば,例えば「sudo gem install tk」というように単純に導入できるはずです.
ですが,Ubuntuでは,この名前で置いているファイルは本来のTcl/Tkのものではなく,別の場所にある本来のファイルを読み込むようなスクリプトになっているため, 何の指定もなくgemでインストールしようとすると失敗します. Ubuntuの場合,次の手順で導入してください.
- sudo apt install ruby-dev
- sudo apt install tcl-dev tk-dev
- sudo gem install tk -- --with-tclConfig-dir=/usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH` --with-tkConfig-dir=/usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`
Contents
最新版のRuby/Tkを使うには
この項目は, 将来的にはRuby/Tkのインストールガイドも兼ねるべきではありますが, 現在のところは,Ruby/Tkの最新版を入手し導入する方法について紹介しています.
Rubyのリリース版に添付のRuby/Tkは,多くの場合,最新の状態ではありません.リリース後に登場した新しいバージョンのTcl/Tkの新機能に対するサポートなどが必要であれば,最新版を調べてみてください.
一時期のRuby/Tkは,ある種のバグのため, 非常に動作が遅いということがありました (はっきりとは覚えていませんが,1.8.6くらいの頃?). その時期にあたるものであるかどうかは, ウィジェットデモ(「Ruby/Tkのサンプルスクリプト」参照)の中の 「フロアプラン」のデモの描画速度で判断できます. 描画がゆっくりで,個々のステップを確認できるようであれば. バグで動作が鈍い時期のものだと思います. その場合は,ぜひ最新版への入れ換えを試してみてください.
Ruby/Tk-Kit
まだ実験版ですが,Tcl/Tkのライブラリと環境とをtcltkilb.soに一体化することで, Tcl/Tkがインストールされていない環境でRuby/Tkを使えるようにした Linux用のtcltklib.soと, RubyInstaller 1.9.1p378rc2 用のRuby/Tk環境および置き換え用のtcltklib.soとを置いています. 良かったら試してみてください.
Ruby/Tkのサンプルスクリプト
Ruby/Tkのソース(Rubyのソースアーカイブ)に含まれるサンプルスクリプトについての紹介や,役立ちそうなサンプルスクリプトを掲載したいと考えています.
Inside Ruby/Tk
Ruby/Tk独自の機能を中心として解説を行います.
Ruby/Tk Logo Image
Ruby/Tkのロゴイメージなんてものを作ってみました. RubyのロゴイメージとTcl/Tkの「羽」イメージとをベースとしています.
プレゼンテーション資料
私(永井)がRuby(主にRuby/Tk)関連でしゃべったときの資料の一部です.
Ruby/Tk講習会資料
過去に行われたRuby/Tkの講習会の資料をダウンロードできます. 資料(テキスト)はRuby/Tkの独学の際にも役立つようにしたつもりです.
参考書籍
Ruby/Tkに関しての書籍です.
リンク
Ruby/Tk関連サイトなどのリンクです.
Ruby/TkORCA
まだまだ開発中の状態ではありますが, Ruby/Tkベースで作成したGUIアプリをネットを介して利用可能にしたり, 不特定多数へのサービスとして公開したりを簡単に実現可能にするためのフレームワークです.
現在,1.9 対応を含めて改善作業中. まだ問題が複数残っているので新版公開にはまだしばらくかかりそう...
その他
他の項目に含まれないようなものの置き場です. 基本的にはRuby関連のものですが,もしかするとそれ以外が置かれることもあるかも?
Keyword(s):[Ruby/Tk] [Ruby]
References:[最新版のRuby/Tkを使うには] [SideMenu]