>> 古い記事: Ruby: eval からブロック付きメソッドへ、書き方を順に変えてみる
<< 新しい記事: (solved) Ruby/Tk: TkPackage can't find package BWidget (RuntimeError) / Ubuntu Studio 8.04

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Ruby/Tk: TkFrame を使って listbox+scrollbar を配置する

pack だけでは簡単なレイアウトしかできない、 でもグリッドレイアウトはめんどくさい、 という場合に便利なのが TkFrame。 listbox + scrollbar の使い方と併せてメモしておく。

フレームの中に子ウィジェットを配置することで 複数のウィジェットをグループ化し、 それを貼り付ける、というイメージ。

といっても子(フレームに入れるウィジェット)のインスタンス 生成時に引数で親(フレーム)を指定すればいいだけなので 特に難しいことはなかった。

require "tk"


label_green  = TkLabel.new{ text "red"   ; bg "#ff0000" }
label_red    = TkLabel.new{ text "green" ; bg "#00ff00" }

frame = TkFrame.new
# new の引数で親(フレーム)を指定
label_blue = TkLabel.new( frame ){ text "blue"; bg "#0088ff" }
sbar = TkScrollbar.new( frame )
lbox = TkListbox.new( frame ){
  height 10
  yscrollbar sbar # listbox のプロパティ yscrollbar に登録
}
(0..99).each{ |n|
  lbox.insert( "end", "item #{n}" )
}


label_green.pack( :side => :top )

frame.pack( :side => :top )
lbox.pack( :side => :left )
sbar.pack( :side => :left, :fill => :y )
label_blue.pack( :side => :left )

label_red.pack( :side => :top )


Tk.mainloop

参考(外部リンク)

>> 古い記事: Ruby: eval からブロック付きメソッドへ、書き方を順に変えてみる
<< 新しい記事: (solved) Ruby/Tk: TkPackage can't find package BWidget (RuntimeError) / Ubuntu Studio 8.04
** ホームに戻る

コメント

コメントの投稿

管理者にだけ表示を許可する

|
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。