テクセル
Rubyでダイアログ表示(tk)

tkを使用しRubyでダイアログを表示します。
OS: Windows10, rubyのバージョン: ruby 2.6.3p62 で確認

メッセージダイアログ
Tk.messageBox
メッセージボックスを表示します。
オプション 内容
icon => string アイコンを指定 error, info, question, warning
type => string ボタンの形式を指定 abortretryignore, ok, okcancel, retrycancel, yesno, yesnocancel
default => string デフォルトのボタンを指定 abort, retry, ignore, ok, cancel, yes, no
detail => string 補助メッセージを指定
message => string 表示メッセージを指定
title => string メッセージボックスのタイトルを指定

戻り値:押されたボタン名 string

使用例


# -*- coding: utf-8 -*-
require 'tk'

sr = Tk.messageBox(
   'type'    => "yesno",
   'icon'    => "info",
   'detail'  => "ボタンを押して下さい。",
   'title'   => "確認ダイアログ",
   'default' => "no",
   'message' => "実行しますか?"
)
p sr
使用例実行結果
ファイル開、ファイル名を付けて保存ダイアログ
Tk.getOpenFile, Tk.getSaveFile
ファイル開、ファイル名を付けて保存ダイアログを表示します。
オプション 内容
defaultextension => string 拡張子なしのファイル名を指定した場合に追加される拡張子
initialfile => string ダイアログ表示時に表示されるファイル名
filetypes => string リストボックスに表示されるファイルタイプを指定
例: 'filetypes' => [["csvファイル", ".csv"], ["txtファイル", ".txt"], ["ALL Files", ".*" ]]
initialdir => string ダイアログ表示時のフォルダを指定
title => string ダイアログのタイトル

戻り値:ファイル名(フルパス)string

ファイル開 使用例


# -*- coding: utf-8 -*-
require 'tk'

# sr = Tk.getOpenFile()

sr = Tk.getOpenFile(
   'defaultextension' => ".rb",
   'initialfile' => "abc.rb",
   'filetypes' => [["ruby ファイル", ".rb"], ["ALL Files", ".*" ]],
   'initialdir' => "D:\\",
   'title'   => "ファイルを選択して下さい。"
)
p sr

ファイル名を付けて保存 使用例


# -*- coding: utf-8 -*-
require 'tk'

#sr = Tk.getSaveFile()

sr = Tk.getSaveFile(
   'defaultextension' => ".rb",
   'initialfile' => "testfile.rb",
   'filetypes' => [["ruby ファイル", ".rb"], ["ALL Files", ".*" ]],
   'initialdir' => "D:\\",
   'title'   => "保存ファイル名を指定して下さい。"
)
p sr
フォルダ選択ダイアログ
Tk.chooseDirectory
フォルダ(ディレクトリィ)選択ダイアログを表示します。
オプション 内容
initialdir => string ダイアログ表示時の初期フォルダ
title => string ダイアログのタイトル

戻り値:フォルダ名(フルパス)string

フォルダ選択 使用例


# -*- coding: utf-8 -*-
require 'tk'

#sr = Tk.chooseDirectory()

sr = Tk.chooseDirectory(
   'initialdir' => "D:\\",
   'title'   => "フォルダを指定して下さい。"
)
p sr
Rubyユーティリティ
©2019 TEXCELL CORPORATION
テクセル株式会社