フレーム(Frame)

フレームは,ウィジェットのまとまりを埋め込むウィジェットで,主に配置管理のために頻繁に使用します.

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 ウィジェットの幅.

戻る