Python tkinter进度条控件(Progressbar)的使用

 更新时间:2021年04月09日 10:28:59   作者:风华明远  
这篇文章主要介绍了Python tkinter进度条控件(Progressbar)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

进度条的作用就是提示用户进度信息。可以有两种方式:
1)提示完成度
比如,正在安装程序的进度,一般是从0%到100%。

2)提示正在进行处理
比如正在处理数据内容,并不知道何时能够处理完毕。这个时候的进度是提示用户有任务正在进行。此类的提示没有完成度提示,只是进度条来回往复的移动,表示任务正在进行中。
进度条对象是定义在ttk中的,使用的时候需要引入ttk包。

1 属性

属性 描述
cursor 鼠标位于进度条内时的形状
length 进度条长度
maximum 进度条最大刻度值
mode 进度条的模式。有两种:‘determinate'和'indeterminate'
orient 进度条的方向,有HORIZONTAL 和VERTICAL两种
style 定义进度条的外观
takefocus 是否可以通过Tab获得输入焦点
variable 与进度条关联的变量。可以设置或获得进度条的当前值
value 设置或者获取进度条的当前值

1.1 cursor

设置鼠标位于进度条内时的形状。具体的鼠标形状说明见3.3.6节。

import tkinter as tk
from tkinter import ttk
import time 
def increment(*args):
    for i in range(100):
        p1["value"] = i+1
        root.update()
        time.sleep(0.1)
root = tk.Tk()
root.geometry('320x240')
p1 = ttk.Progressbar(root, length=200,cursor='spider',
                     mode="determinate",
                     orient=tk.HORIZONTAL)
p1.grid(row=1,column=1)
btn = ttk.Button(root,text="Start",command=increment)
btn.grid(row=1,column=0)
root.mainloop()

结果:

在这里插入图片描述

1.2 length

设置进度条长度。默认单位是像素,也可以是其他的单位。详细的单位说明见3.3.1节。

import tkinter as tk
from tkinter import ttk
import time 
def increment(*args):
    for i in range(100):
        p1["value"] = i+1
        root.update()
        time.sleep(0.1)
root = tk.Tk()
root.geometry('360x240')
p1 = ttk.Progressbar(root, length='2i', mode="determinate",
                     orient=tk.HORIZONTAL)
p1.grid(row=1,column=1)
btn = ttk.Button(root,text="Start",command=increment)
btn.grid(row=1,column=0)
root.mainloop()

说明:长度是'2i',表示是2英寸长。

1.3 maximum

定义进度条的最大刻度。默认值是100。

import tkinter as tk
from tkinter import ttk
import time 
def increment(*args):
    for i in range(100):
        p1["value"] = i+1
        root.update()
        time.sleep(0.1)
root = tk.Tk()
root.geometry('320x240')
p1 = ttk.Progressbar(root, length=200, mode="determinate",
                     maximum=200,orient=tk.HORIZONTAL)
p1.grid(row=1,column=1)
btn = ttk.Button(root,text="Start",command=increment)
btn.grid(row=1,column=0)
root.mainloop()

结果:

在这里插入图片描述

说明:进度条的最大刻度设为200,而在increment()回调函数中,只更新进度条的数值到100。当循环完成之后,进度条只更新了50%的刻度。

1.4 mode

设置进度条的模式。进度条有两种模式:‘determinate'和'indeterminate'
(1)determinate
对于'determinate'的模式,在程序的控制下,进度条的指示会从0开始,移动到最大刻度,然后停止。这种情况用于知道确切的进度数据。比如读取文件,是知道文件的大小的,可以用百分比来显示完成程度。
(2)indeterminate
对于'indeterminate',进度条的刻度是往复运动,表示某个处理过程正在进行中。这种情况用于不知道确切的进度数据,也就是说,不知道完成的状况。比如查询数据库返回大量的结果,程序事先无法确认会返回多少的结果。

import tkinter as tk
from tkinter import ttk
import time 
def increment(*args):
    p1.start()
root = tk.Tk()
root.geometry('320x240')
p1 = ttk.Progressbar(root, length=200, mode="indeterminate",
                     maximum=200,orient=tk.HORIZONTAL)
p1.grid(row=1,column=1)
btn = ttk.Button(root,text="Start",command=increment)
btn.grid(row=1,column=0)
root.mainloop()	

说明:indeterminate的调用方式是使用进度条控件的start()方法。

1.5 orient

设置进度条的方向,有两种格式:水平(HORIZONTAL)和垂直(VERTICAL)。

1.6 style

设置进度条的外观。具体的用法见23.2节。

1.7 takefocus

设置进度条是否可以获得输入焦点。

1.8 variable

和进度条有关的一个变量IntVar(),可以用来设置或者获取进度条当前的数值。

1.9 value

进度条当前的数值。

2 函数

2.1 start(interval=None)

函数

描述

start(interval=None)

自动调整进度条的位置。通过启动一个循环定时事件,按照定义的步长调整进度条位置。定时器的间隔由interval参数来设定。间隔单位是毫秒.默认间隔是50毫秒。

step(amount=None)

每次调整进度条的步长,默认是1.0

stop()

停止定时器,停止进度条的自动调整

开始自动调整进度条,默认时间间隔是50毫秒。自动调整是依靠启动一个可循环的定时器实现的。每次的调整步长由step()函数实现。

2.2 step(amount=None)

定义每次调整进度条的步长。默认是1.0,可以通过设置amount设置其他数值。

2.3 stop

停止进度条的调整。

import tkinter as tk
from tkinter import ttk
import time
def start(*args):
    p1.start(30)
def stop(*args):
    value=p1['value']
    p1.stop()
    p1['value']=value    
root = tk.Tk()
root.geometry('320x240')
p1 = ttk.Progressbar(root, length=200,
                     mode="indeterminate",
                     orient=tk.HORIZONTAL)
p1.grid(row=1,column=0,columnspan=2)
btn_start = ttk.Button(root,text="开始",
                       command=start,width=10)
btn_start.grid(row=0,column=0)
btn_stop = ttk.Button(root,text="停止",
                      command=stop,width=10)
btn_stop.grid(row=0,column=1)
root.mainloop()

到此这篇关于Python tkinter进度条控件(Progressbar)的使用的文章就介绍到这了,更多相关Python tkinter进度条控件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python操作RabbitMq的三种工作模式

    python操作RabbitMq的三种工作模式

    这篇文章主要为大家介绍了python操作RabbitMq的三种工作模式,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • Python中的条件判断语句基础学习教程

    Python中的条件判断语句基础学习教程

    这篇文章主要介绍了Python中的条件判断语句基础学习教程,文中使用的是Python2.x版本但条件语句部分的使用规则未在3.x中改变,需要的朋友可以参考下
    2016-02-02
  • Python开发之射击闯关游戏的实现

    Python开发之射击闯关游戏的实现

    这篇文章主要为大家详细介绍了如何利用Python实现射击闯关游戏,文中的示例代码讲解详细,对我们学习Python有一定的帮助,感兴趣的小伙伴可以了解一下
    2023-01-01
  • Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例

    Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例

    这篇文章主要介绍了Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息的方法,涉及Python微信企业号回调模式消息响应机制相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • Python timeit模块的使用实践

    Python timeit模块的使用实践

    timeit 模块是 Python 标准库中的模块,无需安装,直接导入就可以使用。这篇文章主要介绍了Python timeit模块的使用,需要的朋友可以参考下
    2020-01-01
  • django inspectdb 操作已有数据库数据的使用步骤

    django inspectdb 操作已有数据库数据的使用步骤

    这篇文章主要介绍了django inspectdb 操作已有数据库数据的使用步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Python操作数据库之数据库编程接口

    Python操作数据库之数据库编程接口

    这篇文章主要介绍了Python操作数据库之数据库编程接口,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-06-06
  • pytest解读一次请求多个fixtures及多次请求

    pytest解读一次请求多个fixtures及多次请求

    这篇文章主要为大家介绍了一次请求多个fixtures,以及fixtures被多次请求的pytest官方解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Python实现测试磁盘性能的方法

    Python实现测试磁盘性能的方法

    这篇文章主要介绍了Python实现测试磁盘性能的方法,涉及Python对硬件的相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • Python中的 any() 函数和 all() 函数

    Python中的 any() 函数和 all() 函数

    这篇文章主要介绍了Python中的 any() 函数和 all() 函数,文章基于Python的相关资料展开对 any 和 all() 函数的语法详细内容,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-04-04

最新评论