【Ruby】Tk(ツールキット)のダイアログのサンプルプログラム【Tk】

Tk.getOpenFile
Tk.getSaveFile
Tk.chooseDirectory
Tk.chooseColor
Tk.messageBox

Tk.getOpenFile

require 'tk'
root = TkRoot.new
root.title = "漢字のタイトル"
button_click = Proc.new {
  files=Tk.getOpenFile(
  #files=Tk::getOpenFile( #←これでも良い
    filetypes:"{{Textファイル} {.txt}} {{Rubyファイル} {.rb}} {{全てのファイル} {*}}", #スペースの区切り位置に注意
    title:"テキストファイルを開く", #ダイアログのタイトル
    initialdir:"c:\\users\\owner\\documents", #指定なしまたは不正パスの場合「ピクチャ」フォルダになる(Windows10)
    multiple:"true", #複数ファイル指定可能
    defaultextension:"rb" #拡張子が省略されて入力された場合のデフォルトの拡張子(OpenFileの時は意味ないので使わないほうが良い)
  )
  puts(files)
  safiles=files.split(/ /)  # multipleで複数選択可能の場合、ファイルパスはスペース区切りで得られる(途中ディレクトリ名またはファイル名にスペースが含まれる場合は注意)
  puts(safiles)
}
button = TkButton.new(root) do
   text "button"
   pack("side" => "left",  "padx"=> "50", "pady"=> "50")
end
button.command = button_click
#button.comman = button_click   ←これでもOK
Tk.mainloop

Tk.getSaveFile

require 'tk'
root = TkRoot.new
root.title = "漢字のタイトル"
button_click = Proc.new {
  files=Tk.getSaveFile(
  #files=Tk::getOpenFile( #←これでも良い
    filetypes:"{{Textファイル} {.txt}} {{Rubyファイル} {.rb}} {{全てのファイル} {*}}", #スペースの区切り位置に注意
    title:"テキストファイルを開く", #ダイアログのタイトル
    initialdir:"c:\\users\\owner\\documents\\Visual Studio Code", #指定なしまたは不正パスまたはc:\\users\\owner\\documentsの場合OneDrive(SkyDrive)の「ドキュメント」フォルダになる(Windows10)
    defaultextension:"rb" #拡張子が省略されて入力された場合のデフォルトの拡張子
  )
  puts(files)
  safiles=files.split(/ /)  # multipleで複数選択可能の場合、ファイルパスはスペース区切りで得られる(途中ディレクトリ名またはファイル名にスペースが含まれる場合は注意)
  puts(safiles)
}
button = TkButton.new(root) do
   text "button"
   pack("side" => "left",  "padx"=> "50", "pady"=> "50")
end
button.command = button_click
#button.comman = button_click   ←これでもOK
Tk.mainloop

Tk.chooseDirectory

require 'tk'
root = TkRoot.new
root.title = "漢字のタイトル"
button_click = Proc.new {
  folder=Tk.chooseDirectory(
  #folder=Tk::chooseDirectory( #←これでも良い
    title:"フォルダ指定", #ダイアログのタイトル
    initialdir:"c:\\Users\\owner\\Documents\\Visual Studio Code" #指定なしまたは不正パスの場合「OneDrive(SkyDrive)ドキュメント」フォルダになる(Windows10)
  )
  puts(folder)
}
button = TkButton.new(root) do
   text "button"
   pack("side" => "left",  "padx"=> "50", "pady"=> "50")
end
button.command = button_click
#button.comman = button_click   ←これでもOK
Tk.mainloop

Tk.chooseColor

require 'tk'
root = TkRoot.new
root.title = "漢字のタイトル"
button_click = Proc.new {
  color=Tk.chooseColor(
  #color=Tk::chooseColor( #←これでも良い
    title:"色の選択", #ダイアログのタイトル
    initialcolor:"#ff0000" #デフォルトの色
  )
  puts(color)
}
button = TkButton.new(root) do
   text "button"
   pack("side" => "left",  "padx"=> "50", "pady"=> "50")
end
button.command = button_click
#button.comman = button_click   ←これでもOK
Tk.mainloop

Tk.messageBox

require 'tk'
root = TkRoot.new
root.title = "漢字のタイトル"
button_click = Proc.new {
  ans=Tk.messageBox(
  #color=Tk::messageBox( #←これでも良い
    title:"メッセージ", #ダイアログのタイトル
    type:"yesnocancel", #ok,okcancel,yesno,yesnocancel,retrycancel,abortretryignore
    icon:"error", #info,error,question,warning
    message:"いずれかのボタンを押してください"
  )
  puts(ans)
}
button = TkButton.new(root) do
   text "button"
   pack("side" => "left",  "padx"=> "50", "pady"=> "50")
end
button.command = button_click
#button.comman = button_click   ←これでもOK
Tk.mainloop