龙空技术网

tkinter的第16个widget-Progressbar(python学习笔记)

知行合一王立辉 114

前言:

今天你们对“progressbarpython”大约比较关注,大家都想要学习一些“progressbarpython”的相关知识。那么小编也在网上收集了一些关于“progressbarpython””的相关文章,希望看官们能喜欢,小伙伴们快快来了解一下吧!

1-1 Progressbar进度条概念

进度条概念,我们平时安装软件时,安装界面总会有个进度提示,有时候是条状,有时候是圆圈状。tkinter中同样拥有进度条,进度条中有一个指针,由此指针可以了解工作进度,例如档案下载、档案解压缩等,用户可以由这个工作进度指针确认系统仍在进行中,同时也可以了解目前进行到哪一个阶段。

语法:Progressbar(父窗口,options)

options:

(1)length:进度条的长度,默认是100像素。

(2)mode:可以有下列两种模式。① determinate:一个指针会从起点移至终点,通常当我们知道所需工作时间时,可以使用此模式,这是默认模式。② indeterminate:一个指针会在起点和终点间来回移动,通常当我们不知道工作所需时间时,可以使用此模式。

(3)maximum:进度条的最大值,默认是100。

(4)name:进度条的名称,供程序参考引用。

(5)orient:进度条的方向,可以是HORIZONTAL(默认水平)或VERTICAL(垂直)。

(6)value:进度条的目前值。

(7)variable:记录进度条目前的进度值。

实例:

执行结果:

1-2 进度条动画设计

实例:

执行结果:

PS:如果要想实现进度条的动画设计,就得使用update()方法,实现数据的动态更新。上面例子中我们可以通过调整time.sleep()的睡眠时间,来实现进度条的加速或减速。

在正常的使用环境中,进度条常用来作为下载数据或者安装软件等,这个时候下载文件大小或安装软件进程,读取的都是百分比,而不是我们预先设定的参数。在这里对上面实例做一下优化。

实例:

执行结果:

PS:总结以下进度条的实现方法:

1.建立progressbar控件,设置好长度、模式及方向;2.配置控件,设置初始值和最大值(正式使用过程中,最大值应该为自动获取);3.动画实现,调用update或使用after方法,实现value值得动态更新。要想实现动画,就必须让value值可以进行动态更新。

1-3 Progressbar的方法start( )/step( )/stop( )

(1)start(interval):每隔interval时间移动一次指针。interval的默认值是50ms,每次指针移动调用一次step(delta)。在step( )方法内的delta参数的意义是增值量。

(2)step(delta):每次增加一次delta,默认值是1.0,在determinate模式,指针不会超过maximum参数值。在indeterminate模式,当指针达到maximum参数值的前一格时,指针会回到起点。(步长)

(3)stop( ):停止start( )的运行。

验证使用step(2)方法,相当于每次增值2,当指针到达末端值100前一格时(相当于是98),指针会回到0,然后重新开始移动。这个程序执行时同时在PythonShell窗口中会列出目前指针的值。(动态循环)

执行结果:

以上执行running后会进入动态循环,注意98-0的转换,它不会执行100,而是会跳转会0,重新开始。

start()和stop()方法实例:

执行结果:

ps:这里需要注意的是,点击start开始计时后,步长默认为1,可看上面三个方法的解释,点击stop后,进度条不是暂停,而是直接归0,从头开始。

1-4 indeterminate模式

这个模式主要是让用户知道程序仍在工作,比如我们使用电脑时,一旦软件崩溃或卡死有时候会弹出一个对话框:

执行结果:

标签: #progressbarpython