テケテケな日々(Ruby/tkメモの4)
いずれも逆引き Ruby/tk からをベースに、部分的に Tk マニュアルを参照して。
■ファイルオープンダイアログを使う
require 'tk'
b_fopen = TkButton.new('text' => 'ファイル').pack
b_fopen.command proc {
filepath = Tk.getOpenFile
p filepath
}
Tk.mainloop
Tk.getOpenFile を使うと標準のファイルオープンダイアログが開くらしい。
同様にして保存ダイアログを使うには、getSaveFile があるようだ。
■リストボックス
require 'tk'
LIST = ['red', 'blue', 'black']
lst = TkListbox.new {
# selectmode 'browse'
pack
}
lst.insert 0, *LIST
lst.bind '<ListboxSelect>', proc {
p lst.get(lst.curselection)
}
Tk.mainloop
selectmode
single, browse, multiple, extended
ひとつを選択するのは、single か browse モード。複数選択は、multiple か extended モード。基本的には browse か extended を利用するのがよいようだ。デフォルトは browse ということなので、ひとつを選択するのであれば指定しなくてもよい。
insert で実際にリストボックスに表示する文字列を取り込む。
bind はイベント処理で、'<ListboxSelect>' でリストボックスの項目を選択したときの処理が定義されているものらしい。実際の値は proc 以下のようにして取得。
| 固定リンク











コメント