使用python写一个桌面的gui自定义倒计时
导入包
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自定义倒计时相关推荐
- pythongui登录界面密码显示_用python写一个带有gui界面的密码生成器
需要用到的库: tkinter:构建gui界面 pyperclip:复制功能 random:生成随机数 string:处理字符串 代码: from tkinter import * import ra ...
- Python写阴阳师脚本带GUI又是一个学习小技巧
Python写阴阳师脚本带GUI 需要用到环境 Python3. pycharm.天天模拟器.阴阳师. 准备库 pip install pyautogui pip install pywin32 需要 ...
- python写音乐播放器_AJ Kipper:用Python写一个简易的MP3播放器
用Python写一个简易的MP3播放器 前言 最近在学习Web.py框架的时候,了解了基本的Python连接数据库(MySQL)的方法.学完后,总想用它来干点啥,于是,就想能不能写一个MP3播放器.一 ...
- python能制作游戏吗_如何用python写一个小游戏
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 引言最近python语言大火,除了在科学计算领域python有用武之地之外,在游 ...
- python写一个通讯录step by step V3.0
python写一个通讯录step by step V3.0 更新功能: 数据库进行数据存入和读取操作 字典配合函数调用实现switch功能 其他:函数.字典.模块调用 注意问题: 1.更优美的格式化输 ...
- python俄罗斯方块算法详解_用 Python 写一个俄罗斯方块游戏 (
@@ -2,34 +2,34 @@ > * 原文作者:[Dr Pommes](https://medium.com/@pommes) > * 译文出自:[掘金翻译计划](https://g ...
- python写一个通讯录V2.0
python写一个通讯录step by step V2.0 引用知识 list + dict用于临时存储用户数据信息 cPickle用于格式化文件存取 依旧使用file来进行文件的存储 解决问题 1. ...
- python写一个表白程序-用Python写一个表白神器让你脱单
原标题:用Python写一个表白神器让你脱单 来自公众号:Python编程时光 今天是什么节日,就不用小明说了吧? 有女朋友的,该准备的礼物买了吗? 没有对象的,表白的套路学会了吗? 还没有?好吧,你 ...
- python socket能做什么_用python写一个聊天小程序!和女朋友的专属聊天工具!
原标题:用python写一个聊天小程序!和女朋友的专属聊天工具! 1.UDP简介 Internet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP).UDP为应用程序提供了无需建立就可 ...
最新文章
- php 自动处理小图的代码,PHP 处理图片的类实现代码
- Java黑皮书课后题第7章:**7.5(打印不同的数)编写一个程序,读入10个数,显示互不相同的数的数目,并以输入的顺序显示这些数字,以输入的顺序显示这些数字,以一个空格分隔。
- SHELL编程一二三
- JUC队列-LinkedBlockingQueue(二)
- leaf 叶子(张量)
- mysql去掉小数点多余0_mysql数据库个性化需求:版本号排序
- Shell 基础介绍 [1]
- numpy 1.22.1 基本语法
- SEO小白学习与实践(一):seo学习缘起、目标
- 制作bin文件.c解读
- 美通企业日报 | 沃尔玛8.8购物节销售规模猛增;中通快递市场份额持续扩大
- imu可视化和frame_id的查询
- mysql概念模型中的3种基本联系_数据库建模三步骤:概念模型
- matlab符号表达式vpa,Matlab符号运算总结
- 山东农业大学计算机考研资料汇总
- preempt_disable内核禁用抢占
- 安装VS2019、MFC,并创建MFC工程文件,查看工程信息
- mysql substr无效_mysql substr()函数用法
- 大疆工程师:如何利用6年时间成为一名优秀的机器人工程师
- 前端 JS实现彩票开奖走势图 连线