在Python语言中实现GUI全屏倒计时代码示例
Python  /  管理员 发布于 1年前   353
Python实现的GUI全屏倒计时代码示例:
import tkinter as tk
import winsound
class CountdownGUI:
def __init__(self):
self.window = tk.Tk()
self.window.title("倒计时")
self.window.attributes('-fullscreen', True)
self.window.configure(bg="black")
self.time_label = tk.Label(self.window, text="倒计时时间(秒):", font=("Arial", 24), fg="white", bg="black")
self.time_label.pack()
self.time_entry = tk.Entry(self.window, font=("Arial", 24))
self.time_entry.pack()
self.start_button = tk.Button(self.window, text="开始倒计时", font=("Arial", 24), command=self.start_countdown)
self.start_button.pack()
self.countdown_label = tk.Label(self.window, text="", font=("Arial", 256), fg="white", bg="black")
self.countdown_label.place(relx=0.5, rely=0.5, anchor="center")
self.time_remaining = 0
self.countdown_active = False
self.countdown_id = None
self.window.bind("<Escape>", self.exit_fullscreen)
self.window.bind("<F7>", self.toggle_visibility)
def start_countdown(self):
if not self.countdown_active:
time_input = self.time_entry.get()
if time_input.isdigit():
self.time_remaining = int(time_input)
self.countdown_active = True
self.update_countdown()
# 隐藏输入框部分
self.time_label.pack_forget()
self.time_entry.pack_forget()
self.start_button.pack_forget()
def update_countdown(self):
if self.time_remaining > 0 and self.countdown_active:
self.countdown_label.config(text=str(self.time_remaining))
self.time_remaining -= 1
# 每秒钟播放提示音
if self.time_remaining == 15:
winsound.PlaySound("倒计时提示音(请更换).wav", winsound.SND_FILENAME)
self.countdown_id = self.window.after(1000, self.update_countdown)
else:
self.countdown_active = False
self.countdown_label.config(text="")
self.window.update()
def exit_fullscreen(self, event):
self.window.attributes("-fullscreen", False)
self.window.destroy()
def toggle_visibility(self, event):
# 切换输入框部分的可见性
if self.time_label.winfo_ismapped():
self.time_label.pack_forget()
self.time_entry.pack_forget()
self.start_button.pack_forget()
if self.countdown_id:
self.window.after_cancel(self.countdown_id)
self.countdown_id = None
else:
self.time_label.pack()
self.time_entry.pack()
self.start_button.pack()
# 重置倒计时相关变量
self.countdown_active = False
self.countdown_label.config(text="")
self.time_remaining = 0
if __name__ == "__main__":
countdown_gui = CountdownGUI()
countdown_gui.window.mainloop()
有需要及兴趣的可以一测
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号