Ruby/TkではTkToplevelクラスが相当します.
使用例を示します.
#!/usr/local/bin/ruby
require 'tk'
rootwindow = TkRoot.new
rootwindow.title('ルートウィンドウ')
TkLabel.new(rootwindow,
'text' => 'これがルートウィンドウです.').pack
newwindow = TkToplevel.new
newwindow.title('新しいウィンドウ')
TkLabel.new(newwindow,
'text' => 'これが新しいウィンドウです.').pack
TkButton.new(newwindow,
'text' => 'close',
'command' => proc{newwindow.destroy}).pack
Tk.mainloop
上記のプログラムを走らせると,ルートウィンドウとは別に,新しいウィンドウができます.また,closeボタンを押すと,新しいウィンドウだけが消去されます.
また,TkRootクラスはルートウィンドウのウィジェットです.ルートウィンドウを消去すると,新しいウィンドウも消去されます.ただ,ルートウィジェットは最初から生成されるので,これまでのプログラムの様に必ずしも明示的に生成する必要はありません.
TkToplevel(TkRoot)クラスのインスタンス変数とメソッドの例を以下に示します.
| インスタンス変数名 | 役割 |
|---|---|
| aspect | ウィンドウの縦横比の範囲.'a b c d'の書式で,横幅/縦幅がa/bからc/dの範囲になるようにする. |
| maxsize | ウィンドウの最大幅を指定. |
| minsize | ウィンドウの最小幅を指定. |
| resizable | サイズ変更の可否.'x y'で設定.xおよびyの値はそれぞれ水平方向,垂直方向についての指定で,1で変更可.0で不可.
|
| title | タイトル名 |
| メソッド名 | 役割 |
| deiconify | ウィンドウを開く. |
| destroy | ウィンドウを閉じる. |
| iconify | ウィンドウをアイコン化する. |
| withdraw | ウィンドウを隠す(アイコンは表示されない). |