怎样实现Tk中的进度条...这是个问题
Easy:Tk::ProgressBar,大部分为翻译Mastering Perl Tk...
首先当然是先决定你的progressBar是放在哪的,也就是说你新建的这个对象要由哪派生出来...以下代码为例
use Tk;
use Tk::ProgressBar ;
my $mw = MainWindow->new(-title => 'ProgressBar example'); #这个就是会显示在MainWindow上的,当然为了便于布
#局,最好新建个Frame,然后由Frame派生这个ProgressBar
$progress = $mw->ProgressBar (
-width => 30, #整个ProgressBar的长度
-from => 0, #从哪开始,并且default值为0,如果为负,啥也不会显示
-to => 100, #到哪结束,默认100,如果设置高于100,这个Bar就满了
-blocks => 50, #可以作出像XP那样的一块一块的效果,这个决定这一块有多长
-colors => [0, 'green', 50, 'yellow' , 80, 'red'], #这个就是从哪到哪是什么颜色,汗,具体颜色怎么编辑,未知
-variable => /$percent_done #通过操作这个变量的值(e.g. 0~100),可疑设定bar中显
#示的进度
)->pack(-fill => 'x'); #这个就不说了,Tk人都知道
接下来,只要想个招,让那个变量按你的需要赋值就可以了,赋值完,别忘记用$mw->update这个方法。至于为什么,未知...
比如:
sub UpdateProgressBar{
my $temp = shift;
$progress->value($temp);
$mw->update;
}