Python Tkinter 多线程控制与进度条更新模板

顾星河
顾星河
发布时间:2026-10-13| 6人浏览过
原创

本文提供基于 Python Tkinter 的多线程 GUI 开发模板,演示如何利用 threading.Event 实现进度条的暂停、继续与停止功能。代码包含完整的界面布局、滚动文本框及线程安全更新逻辑,适用于需要后台任务与界面交互同步的场景。

Python Tkinter 多线程控制与进度条更新模板

本文介绍一个 Python Tkinter 的实用代码模板,通过具体示例详细展示了如何在图形界面中集成多线程控制逻辑。该模板对于希望优化界面响应速度或实现后台任务进度可视化的开发者具有较高的参考价值,建议结合下文代码进行学习与实践。

具体实现代码如下所示:

多线程进度条控制核心代码


import tkinter
import time
import threading
from tkinter import ttk
event = threading.Event()
once=0
def start():
  global once
  if once==1:
    # event.set()
    # print('继续')
    pass
  else:
 
    event.set()
    t1 = threading.Thread(target=thread)
    # print(threading.currentThread())  //获取线程id
    t1.setDaemon(True)
    # validate()
    t1.start()
    print("开始")
    once+=1
def stop():
  event.clear()
  print('暂停')
def conti():
  event.set()
  print('继续')
 
def main():
  try:
    print(s1.get(),s2.get())
    for i in range(0, 30):
      mpb["value"] = i
      text.see(tkinter.END) # 一直查看文本的最后位置~
      text.insert('end', "验证不通过,请查看!" + str(i) + "\r\n")
      # scale.config(mode='determinate', maximum=11.0, value=i)
      text.update() # 一直更新输出
      print(i)
      time.sleep(0.1)
      event.wait()
      window.update()
 
    text.insert('end', "程序运行完成!" + "\r\n")
    text.update()
    text.see(tkinter.END)
    print("验证不通过!")
    pass
  except:
    pass
 
def thread():
  # while True:
    main()
 
window = tkinter.Tk()
window.title('测试')
 
 
#
 
l1=tkinter.Label(text="word输出文件路径")
l1.grid(row=0,column=0)
 
# e1=tkinter.Entry("")
s1 = tkinter.StringVar()
entry1 = tkinter.Entry(window, textvariable=s1)
entry1.grid(row=0,column=1)
 
l2=tkinter.Label(text="Excel文件路径")
l2.grid(row=1,column=0)
 
 
 
 
# e2=tkinter.Entry("")
s2 = tkinter.StringVar()
entry2 = tkinter.Entry(window, textvariable=s2)
entry2.grid(row=1,column=1)
 
 
i=0
mpb = ttk.Progressbar(window, orient="horizontal", length=200, value=0,mode="determinate")
mpb.grid(row=2,column=0,columnspan=2)
 
 
button1=tkinter.Button(window,text='开始',command=start)
button1.grid(row=0,column=2)
button2=tkinter.Button(window,text='暂停',command=stop)
button2.grid(row=1,column=2)
button3=tkinter.Button(window,text='继续',command=conti)
button3.grid(row=2,column=2)
 
 
from tkinter import scrolledtext    # 导入滚动文本框的模块
 
scrolW = 50 # 设置文本框的长度
scrolH = 18 # 设置文本框的高度
text = scrolledtext.ScrolledText(window, width=scrolW, height=scrolH, wrap=tkinter.WORD)
text.grid(row=10, columnspan=8, sticky=tkinter.E)
 
tkinter.mainloop()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。