使用例を示します.
#!/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