#!/usr/local/bin/ruby
require 'tk'
var = TkVariable.new('')
label = TkLabel.new(nil,
'width'=>50,
'textvariable' => var).pack
button1 = TkButton.new(nil,
'text' => 'Open')
button2 = TkButton.new(nil,
'text' => 'Save')
def getopenfile
return Tk.getOpenFile('title' => 'ファイルを開く',
'defaultextension' => 'sgf',
'filetypes' => "{PNG {.png}} {HTML {.html}} {Ruby {.rb}} {SGF {.sgf}} {全てのファイル {.*}}")
end
def getsavefile
return Tk.getSaveFile('title' => 'ファイルを開く',
'defaultextension' => 'sgf',
'filetypes' => "{PNG {.png}} {HTML {.html}} {Ruby {.rb}} {SGF {.sgf}} {全てのファイル {.*}}")
end
button1.command(proc{var.value = getopenfile})
button2.command(proc{var.value = getsavefile})
button1.pack
button2.pack
tk.mainloop
上記のプログラムを走らせ,openボタンを押すと,下のようなウィンドウが生成されます.
また,ファイルを選択すると,ルートウィンドウは以下のようにファイル名がラベルに表示されます.
なお,このプログラムでは,ファイル名を獲得するだけで,実際にファイルが書き換えられるわけではありません.実際の読みだし,書き換えはRubyプログラムで実行することになります.