《Python GUI设计 tkinter菜鸟编程》配套代码 第15章 进度条 Progressbar

    科技2026-03-14  7

    ch15_1.py

    # ch15_1.py from tkinter import * from tkinter.ttk import * root = Tk() root.geometry("300x140") root.title("ch15_1") # 使用默认设置创建进度条 pb1 = Progressbar(root) pb1.pack(pady=20) pb1["maximum"] = 100 pb1["value"] = 50 # 使用各参数自定义方式创建进度条 pb2 = Progressbar(root,orient=HORIZONTAL,length=200,mode="determinate") pb2.pack(pady=20) pb2["maximum"] = 100 pb2["value"] = 50 root.mainloop()

    ch15_2.py

    # ch15_2.py from tkinter import * from tkinter.ttk import * import time def running(): # 开始Progressbar动画 for i in range(100): pb["value"] = i + 1 # 每次更新1 root.update() # 更新画面 time.sleep(0.05) root = Tk() # root.geometry("300x140") root.title("ch15_2") # 使用默认设置创建进度条 pb = Progressbar(root,length=200,mode="determinate",orient=HORIZONTAL) pb.pack(padx=10,pady=20) pb["maximum"] = 100 pb["value"] = 0 btn = Button(root,text="Running",command=running) btn.pack(pady=10) root.mainloop()

    ch15_3.py

    # ch15_3.py from tkinter import * from tkinter.ttk import * def load(): # 启动Progressbar # global bytes # bytes = 0 pb["value"] = 0 # Progressbar初始值 pb["maximum"] = maxbytes # Progressbar最大值 loading() def loading(): # 仿真下载数据 global bytes bytes += 500 # 模拟每次下载500B pb["value"] = bytes # 设置指针 if bytes < maxbytes: pb.after(50,loading) # 经过0.05秒继续执行loading root = Tk() root.title("ch15_3") bytes = 0 # 设置初值 maxbytes = 10000 # 假设下载文件大小 pb = Progressbar(root,length=200,mode="determinate",orient=HORIZONTAL) pb.pack(padx=10,pady=10) pb["value"] = 0 # Progressbar初始值 btn = Button(root,text="Load",command=load) btn.pack(pady=10) root.mainloop()

    ch15_4.py

    # ch15_4.py from tkinter import * from tkinter.ttk import * import time def running(): # 开始Progressbar动画 while pb.cget("value") <= pb["maximum"]: pb.step(2) root.update() # 更新画面 print(pb.cget("value")) # 打印指针值 time.sleep(0.05) root = Tk() root.title("ch15_4") pb = Progressbar(root,length=200,mode="determinate",orient=HORIZONTAL) pb.pack(padx=10,pady=10) pb["maximum"] = 100 pb["value"] = 0 # Progressbar初始值 btn = Button(root,text="Running",command=running) btn.pack(pady=10) root.mainloop()

    ch15_5.py

    # ch15_5.py from tkinter import * from tkinter.ttk import * def run(): # 开始Progressbar动画 print("run()被执行!!!") pb.start() # 指针每次移动1 def stop(): # 终止Progressbar动画 print("stop()被执行!!!") pb.stop() # 终止pb对象动画 root = Tk() root.title("ch15_5") pb = Progressbar(root,length=200,mode="determinate",orient=HORIZONTAL) pb.pack(padx=5,pady=10) pb["maximum"] = 100 pb["value"] = 0 btnRun = Button(root,text="Run",command=run) # 创建Run按钮 btnRun.pack(side=LEFT,padx=5,pady=10) btnStop = Button(root,text="Stop",command=stop) # 创建Stop按钮 btnStop.pack(side=LEFT,padx=5,pady=10) root.mainloop()

    ch15_6.py

    # ch15_6.py from tkinter import * from tkinter.ttk import * def run(): # 开始Progressbar动画 print("run()被执行!!!") pb.start() # 指针每次移动1 def stop(): # 终止Progressbar动画 print("stop()被执行!!!") pb.stop() # 终止pb对象动画 root = Tk() root.title("ch15_6") pb = Progressbar(root,length=200,mode="indeterminate",orient=HORIZONTAL) pb.pack(padx=5,pady=10) pb["maximum"] = 100 pb["value"] = 0 btnRun = Button(root,text="Run",command=run) # 创建Run按钮 btnRun.pack(side=LEFT,padx=5,pady=10) btnStop = Button(root,text="Stop",command=stop) # 创建Stop按钮 btnStop.pack(side=LEFT,padx=5,pady=10) root.mainloop()
    Processed: 0.012, SQL: 9