Ruby/TkではTkFrameクラスが相当します.
代表的な使用例を示します.
#!/usr/local/bin/ruby require 'tk' frame1 = TkFrame.new(nil) frame1.pack('side' => 'left') frame2 = TkFrame.new(nil) frame2.pack('side' => 'right') w1 = TkLabel.new(frame1, 'text' => '左上', 'relief' => 'raised') w1.pack('side' => 'top', 'fill' => 'both') w2 = TkLabel.new(frame2, 'text' => '右上', 'relief' => 'raised') w2.pack('side' => 'top', 'fill' => 'both') w3 = TkLabel.new(frame1, 'text' => '左下', 'relief' => 'raised') w3.pack('side' => 'top', 'fill' => 'both') w4 = TkLabel.new(frame2, 'text' => '右下', 'relief' => 'raised') w4.pack('side' => 'top', 'fill' => 'both') Tk.mainloop上記のプログラムを走らせると,下のようになります.
このレイアウトをFrameなしでパッカーで配置することはまず出来ません.なぜなら,パッカーは指定した側の領域を「早い者勝ち」で埋め込んで行くからです.
TkFrameクラスのインスタンス変数を以下に示します.
インスタンス変数名 | 役割 |
---|---|
borderwidth | 枠の幅.整数値で指定. |
cursor | マウスカーソルの形. |
highlightcolor | ウィジェットにフォーカスがある時の枠の色. |
highlightthickness | ウィジェットにフォーカスがある時の枠の幅. |
relief | ウィジェットの凹凸.'raised'または'sunken'で指定. |
background | ウィジェット全体の背景色. |
height | ウィジェットの高さ. |
width | ウィジェットの幅. |