当前位置: 首页 > news >正文

python使用tkinter添加下载进度UI

  1. 添加进度组件
    def download():          # 创建下载进度框progress_window = tk.Toplevel()progress_window.title("下载进度")progress_label = tk.Label(progress_window, text="正在下载视频文件...")progress_label.pack(pady=10)progress_bar = ttk.Progressbar(progress_window, orient="horizontal", length=300, mode="determinate")progress_bar.pack(pady=10)# 获取窗口宽高并居中显示progress_window.update_idletasks()window_width = progress_window.winfo_width()window_height = progress_window.winfo_height()screen_width = progress_window.winfo_screenwidth()screen_height = progress_window.winfo_screenheight()x = (screen_width - window_width) // 2y = (screen_height - window_height) // 2progress_window.geometry(f"{window_width}x{window_height}+{x}+{y}")
  2. 创建进度更新方法
     

    def update_progress(progress):progress_bar['value'] = progressprogress_window.update_idletasks()
  3. 调用下载方法,传入进度更新方法
     

    ls_setoption.get_dump_video(video_dir, progress_callback=update_progress)progress_window.destroy()
  4. 使用子线程调用下载方法,注意用子线程,否则下载过程UI会卡死,进度不更新
     

        download_thread = threading.Thread(target=download)download_thread.start()

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 如何使用uer做多分类任务
  • 刷题之多数元素(leetcode)
  • 11.索引_创建不同种类索引(primary+unique+复合....)
  • Spring MVC深入理解之源码实现
  • .net core Redis 使用有序集合实现延迟队列
  • 【环境准备】 Vue环境搭建
  • AngularJS API 深入解析
  • CTF php RCE (一)
  • 激光干涉仪可以完成哪些测量:全面应用解析
  • 北京大学长安汽车发布毫米波与相机融合模型RCBEVDet:最快能达到每秒28帧
  • 招投标信息采集系统:让您的企业始终站在行业前沿
  • 短链接day3
  • Socket网络通信流程
  • 昇思25天学习打卡营第6天|函数式自动微分
  • Docker安装遇到问题:curl: (7) Failed to connect to download.docker.com port 443: 拒绝连接
  • #Java异常处理
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 2017届校招提前批面试回顾
  • Android交互
  • ComponentOne 2017 V2版本正式发布
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Cumulo 的 ClojureScript 模块已经成型
  • HashMap ConcurrentHashMap
  • js面向对象
  • JS题目及答案整理
  • Laravel 实践之路: 数据库迁移与数据填充
  • Lucene解析 - 基本概念
  • maya建模与骨骼动画快速实现人工鱼
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • node入门
  • rc-form之最单纯情况
  • Webpack 4x 之路 ( 四 )
  • 第2章 网络文档
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 给github项目添加CI badge
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 技术发展面试
  • 今年的LC3大会没了?
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 学习笔记:对象,原型和继承(1)
  • 源码安装memcached和php memcache扩展
  • 7行Python代码的人脸识别
  • ​低代码平台的核心价值与优势
  • # 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (安卓)跳转应用市场APP详情页的方式
  • (二) 初入MySQL 【数据库管理】
  • (二)正点原子I.MX6ULL u-boot移植
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 使用配置文件