使用例を示します.
#!/usr/local/bin/ruby
require 'tk'
require 'tkafter'
var = TkVariable.new('0')
num = 0
TkLabel.new(nil,
'width' => 20,
'textvariable' => var).pack
TkAfter.new(500, -1, proc{num += 1; var.value = String(num)}).start
Tk.mainloop
上記のプログラムを走らせると,下のようになります.500ミリ秒毎に,数字が1ずつ増えていきます.
TkAfterクラスの主なメソッドを以下に示します.
| メソッド名 | 機能 |
|---|---|
| new(time, loop, procedure) | 一定時間ごとに与える動作を定義します.
|
| start | 定義した定時動作を起動させます. |
| stop | 定義した定時動作を停止させます. |
| restart | 停止状態になっている定時動作を再起動させます |
一定時間毎ではなく,間隔を変化させることも出来ます.以下のプログラムではレイアウトは上の画像と同じですが,数字の変化の様子がかわります.
#!/usr/local/bin/ruby
require 'tk'
require 'tkafter'
var = TkVariable.new('0')
time_array = [1024,512,256,128,64,32,16,8,4,2]
num = 0
TkLabel.new(nil,
'width' => 20,
'textvariable' => var).pack
TkAfter.new(proc{val = time_array.shift; time_array.push(val); val}, -1, proc{num += 1; var.value = String(num)}).start
Tk.mainloop