导入包

import tkinter as tk
import time

初始化

 def __init__(self, master, minutes=25, seconds=0):  # 添加默认倒计时self.master = mastermaster.title("Countdown Timer")master.geometry("350x200")  # 将gui界面调整为适当大小self.minutes = tk.StringVar(value=str(minutes))  # 设置默认值self.seconds = tk.StringVar(value=str(seconds))  # 设置默认值# 创建分钟和秒钟输入框tk.Label(master, text="分:").grid(row=0, column=0)tk.Entry(master, textvariable=self.minutes, width=10).grid(row=0, column=1)tk.Label(master, text="秒:").grid(row=0, column=2)tk.Entry(master, textvariable=self.seconds, width=10).grid(row=0, column=3)# 创建启动和暂停按钮self.start_button = tk.Button(master, text="开始", command=self.start_timer)self.start_button.grid(row=3, column=0, pady=10)self.pause_button = tk.Button(master, text="暂停", command=self.pause_timer, state=tk.DISABLED)self.pause_button.grid(row=3, column=2, pady=10)self.remaining_time = 0self.timer_running = False# 新增日期和时间标签self.time_label = tk.Label(master, text="", font=("Arial", 12))self.time_label.grid(row=1, column=1, pady=10)self.update_time_label()# 添加倒计时标签self.countdown_label = tk.Label(master, text="", font=("Arial", 20, "bold"))self.countdown_label.grid(row=5, column=0, columnspan=4, sticky="S", pady=10)

全部代码

import tkinter as tk
import timeclass CountdownTimer:def __init__(self, master, minutes=25, seconds=0):  # 添加默认倒计时self.master = mastermaster.title("Countdown Timer")master.geometry("350x200")  # 将gui界面调整为适当大小self.minutes = tk.StringVar(value=str(minutes))  # 设置默认值self.seconds = tk.StringVar(value=str(seconds))  # 设置默认值# 创建分钟和秒钟输入框tk.Label(master, text="分:").grid(row=0, column=0)tk.Entry(master, textvariable=self.minutes, width=10).grid(row=0, column=1)tk.Label(master, text="秒:").grid(row=0, column=2)tk.Entry(master, textvariable=self.seconds, width=10).grid(row=0, column=3)# 创建启动和暂停按钮self.start_button = tk.Button(master, text="开始", command=self.start_timer)self.start_button.grid(row=3, column=0, pady=10)self.pause_button = tk.Button(master, text="暂停", command=self.pause_timer, state=tk.DISABLED)self.pause_button.grid(row=3, column=2, pady=10)self.remaining_time = 0self.timer_running = False# 新增日期和时间标签self.time_label = tk.Label(master, text="", font=("Arial", 12))self.time_label.grid(row=1, column=1, pady=10)self.update_time_label()# 添加倒计时标签self.countdown_label = tk.Label(master, text="", font=("Arial", 20, "bold"))self.countdown_label.grid(row=5, column=0, columnspan=4, sticky="S", pady=10)def update_time_label(self):# 更新日期和时间标签current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())self.time_label.config(text=current_time, font=("Arial", 12))  # 优化2: 将日期和时间标签的字体大小调整为适当大小self.master.after(1000, self.update_time_label)def start_timer(self):if not self.timer_running:self.remaining_time = int(self.minutes.get()) * 60 + int(self.seconds.get())self.timer_running = Trueself.start_button.config(state=tk.DISABLED)self.pause_button.config(state=tk.NORMAL)self.update_timer()def pause_timer(self):if self.timer_running:self.timer_running = Falseself.start_button.config(state=tk.NORMAL)self.pause_button.config(state=tk.DISABLED)def update_timer(self):if self.timer_running:minutes, seconds = divmod(self.remaining_time, 60)self.minutes.set("{:02d}".format(minutes))self.seconds.set("{:02d}".format(seconds))self.countdown_label.config(text=f"{minutes:02d}:{seconds:02d}",font=("Arial", 16, "bold"))  # 优化1: 将倒计时标签的字体大小调整为适当大小if self.remaining_time == 0:self.timer_running = Falseself.start_button.config(state=tk.NORMAL)self.pause_button.config(state=tk.DISABLED)else:self.remaining_time -= 1self.master.after(1000, self.update_timer)root = tk.Tk()
timer = CountdownTimer(root)
root.mainloop()

使用python写一个桌面的gui自定义倒计时相关推荐

  1. pythongui登录界面密码显示_用python写一个带有gui界面的密码生成器

    需要用到的库: tkinter:构建gui界面 pyperclip:复制功能 random:生成随机数 string:处理字符串 代码: from tkinter import * import ra ...

  2. Python写阴阳师脚本带GUI又是一个学习小技巧

    Python写阴阳师脚本带GUI 需要用到环境 Python3. pycharm.天天模拟器.阴阳师. 准备库 pip install pyautogui pip install pywin32 需要 ...

  3. python写音乐播放器_AJ Kipper:用Python写一个简易的MP3播放器

    用Python写一个简易的MP3播放器 前言 最近在学习Web.py框架的时候,了解了基本的Python连接数据库(MySQL)的方法.学完后,总想用它来干点啥,于是,就想能不能写一个MP3播放器.一 ...

  4. python能制作游戏吗_如何用python写一个小游戏

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 引言最近python语言大火,除了在科学计算领域python有用武之地之外,在游 ...

  5. python写一个通讯录step by step V3.0

    python写一个通讯录step by step V3.0 更新功能: 数据库进行数据存入和读取操作 字典配合函数调用实现switch功能 其他:函数.字典.模块调用 注意问题: 1.更优美的格式化输 ...

  6. python俄罗斯方块算法详解_用 Python 写一个俄罗斯方块游戏 (

    @@ -2,34 +2,34 @@ > * 原文作者:[Dr Pommes](https://medium.com/@pommes) > * 译文出自:[掘金翻译计划](https://g ...

  7. python写一个通讯录V2.0

    python写一个通讯录step by step V2.0 引用知识 list + dict用于临时存储用户数据信息 cPickle用于格式化文件存取 依旧使用file来进行文件的存储 解决问题 1. ...

  8. python写一个表白程序-用Python写一个表白神器让你脱单

    原标题:用Python写一个表白神器让你脱单 来自公众号:Python编程时光 今天是什么节日,就不用小明说了吧? 有女朋友的,该准备的礼物买了吗? 没有对象的,表白的套路学会了吗? 还没有?好吧,你 ...

  9. python socket能做什么_用python写一个聊天小程序!和女朋友的专属聊天工具!

    原标题:用python写一个聊天小程序!和女朋友的专属聊天工具! 1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可 ...

最新文章

  1. php 自动处理小图的代码,PHP 处理图片的类实现代码
  2. Java黑皮书课后题第7章:**7.5(打印不同的数)编写一个程序,读入10个数,显示互不相同的数的数目,并以输入的顺序显示这些数字,以输入的顺序显示这些数字,以一个空格分隔。
  3. SHELL编程一二三
  4. JUC队列-LinkedBlockingQueue(二)
  5. leaf 叶子(张量)
  6. mysql去掉小数点多余0_mysql数据库个性化需求:版本号排序
  7. Shell 基础介绍 [1]
  8. numpy 1.22.1 基本语法
  9. SEO小白学习与实践(一):seo学习缘起、目标
  10. 制作bin文件.c解读
  11. 美通企业日报 | 沃尔玛8.8购物节销售规模猛增;中通快递市场份额持续扩大
  12. imu可视化和frame_id的查询
  13. mysql概念模型中的3种基本联系_数据库建模三步骤:概念模型
  14. matlab符号表达式vpa,Matlab符号运算总结
  15. 山东农业大学计算机考研资料汇总
  16. preempt_disable内核禁用抢占
  17. 安装VS2019、MFC,并创建MFC工程文件,查看工程信息
  18. mysql substr无效_mysql substr()函数用法
  19. 大疆工程师:如何利用6年时间成为一名优秀的机器人工程师
  20. 前端 JS实现彩票开奖走势图 连线

热门文章

  1. 注意!买无线路由器需要看的参数
  2. 获取子窗口的window对象
  3. 目录导航《100天精通Python丨快速入门到黑科技》
  4. MuseScore编译成 移动端的app 01
  5. 做物联网卡代理需要什么技巧?有哪些注意事项要考虑?
  6. 结构型设计模式(二) 之 装饰者模式可给对象一层层加工
  7. 聪明伶俐的香穗子(NDK1353)
  8. 【机器学习】决策树(下)——CART算法及剪枝处理
  9. 我的计算机简史(一)
  10. ps scavenge java_Java垃圾回收机制