[#46143] るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果 — eiichi_maekawa@...

62 messages 2009/07/02
[#46153] Re: るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果 — "NARUSE, Yui" <naruse@...> 2009/07/03

成瀬です。

[#46165] Re: に関する1.8.6→1.8.7または、1.9へのバージョンアップ — eiichi_maekawa@... 2009/07/05

前川です。

[#46281] rubyの変数の扱いについて — "前川 映一" <eiichi_maekawa@...> 2009/08/17

前川です。

[#46283] Re: rubyの変数の扱いについて — "(株)ネットフォレスト 植田裕之" <ueda@...> 2009/08/17

植田と申します。

[#46146] 文字変換 — eiichi_maekawa@...

16 messages 2009/07/03
[#46147] Re: 文字変換 — Hidetoshi NAGAI <nagai@...> 2009/07/03

永井@知能.九工大です.

[#46148] Re: 文字変換 — eiichi_maekawa@... 2009/07/03

前川です。

[ruby-list:46135] [RFC] これらの widget を Ruby/Tk の標準ライブラリにする価値はありますか?

From: Hidetoshi NAGAI <nagai@...>
Date: 2009-07-01 10:54:31 UTC
List: ruby-list #46135
永井@知能.九工大です.

今,Ruby/Tk のいくつかのサンプルを Ruby/Tk の標準の機能とするように
格上げするかどうかで迷っています.
この点について,皆さんのコメントなどいただけますと幸いです.

Ruby のソースアーカイブには,いくつかの Ruby/Tk のサンプルスクリプトも
含まれています.
それらの多くは単なるデモファイルなのですが,
一部には widget class のライブラリとして使えるものもあります.
そうしたもののいくつかは便利な代物なので,
Ruby/Tk の標準ライブラリにしてしまってもいいのではないかという話です.

以下のサンプルスクリプトが候補です.
実際に格上げする場合は,クラス名をちょっといじったり
バグフィックスを行ったりした上でということになると思います.


* editable_listbox.rb
    class Editable_Listbox
       キーボードから項目を編集することができる listtbox widget です.
       例えば,項目をダブルクリックすると,その項目の位置にその項目の
       内容を編集できる entry box が現れます.
       もちろん,編集結果は listbox に反映されます.


* scrollframe.rb
    class TkScrollFrame
       スクロール可能なビューウィンドウ (フレームの一部を切り取って見
       るためのもの) を持った frame widget です.
       例えば,ボタンがたくさん並んだツールバーを想像してみてください.
       ツールバーはウィンドウサイズに比べてかなり長いものとします.
       そのような場合には,ツールバーをスクロールさせて表示するように
       したくなるかもしれません.
       TkScrollFrame を使えばそうしたことが簡単に実装できます.


* tkalignbox.rb
    ウィンドウサイズが変わっても,並んでいるウィジェット(例えば文字列
    の長さやフォントの高さが異なるボタンの並び)のそれぞれの幅や高さを
    同じに保ちつづけるというのは少々難しいものです.
    以下は,そうしたことを簡単に実現できるようにするための一種の 
    frame widget です.
       class Tk::HBox
       class Tk::HLBox
       class Tk::HRBox
       class Tk::VBox
       class Tk::VTBox
       class Tk::VBBox
    例えば,Tk::HLBox.new(parent).add(b1, b2, b3, b4, ...) adds などと
    すると,ボタン b1, b2, b3, b4, ... が HLBox フレームに左詰めで配置
    されます.その際,各ボタンの大きさが違っていても,すべて同じになる
    ように調整されます.ウィンドウの大きさが変更されて HLBox ウィジェッ
    トのサイズが変更になった場合でも,HLBox ウィジェットのサイズに合わ
    せてそれぞれのボタンが同じ大きさとなるように保ちつづけます.


* tkballoonhelp.rb
    class TkBalloonHelp
       親ウィジェットにバルーンヘルプを加えます.
       もちろん,表示するメッセージやバルーンヘルプが表示されるまでの
       時間などを制御することが可能です.
       表示の際の hoook メソッドも定義できますので,listbox の項目ごと
       に異なるメッセージを出力することも可能です.


* tkcombobox.rb
    class TkAutoScrollListbox

       自動スクロールタブ付きの listbox です.タブはその方向に表示範囲
       外の項目が存在する場合だけに現れます.タブの上でマウスを動かさ
       ないようにしていれば,その方向に自動的にスクロールします.

    class TkCombobox
       選択リストに TkAutoScrollListbox を使った combobox widget です.


* tktextframe.rb

    これに含まれる TkTextFrame クラスに基づいてデザインされた
    Tk::ScrollbarComposite モジュール (tktextframe.rb には含まれて
    いません) が標準化候補です.
    このモジュールは,スクロール可能なウィジェットにスクロールバーを
    付けた複合ウィジェットを作るのを手助けするものです.
    例えば,
    ---------------------------------------
      class ScrListbox < Tk::Listbox
        include Tk::ScrollbarComposite
        DEFALUT_HSCROLL = false
        def create_component(keys={})
          Tk::Listbox.new(@frame, keys)
        end
        private :create_component
      end
    ---------------------------------------
    というように定義したとき,ScrListbox.new().pack() などとして
    Y 方向のスクロールバー付きの listbox ウィジェットを扱えるように
    なります.

-- 
Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)

In This Thread

Prev Next