用deepseek生成一个电脑端倒计时小程序
近期公司要举办一个工作会议,为了更好的提醒讲者时间,要求小编找到一款桌面倒计时程序,网上搜寻无果,于是灵机一动,抱着试一试的心态打开了deepseek,结果误打误撞生成了满足使用的小程序,不得不感叹AI的强大。
首先,打开deepseek开始提问,因为提问非常宽泛,它将我的要求进行了拆解分析和完善
deepseek开始生成小程序初版代码,需要先部署python的运行环境,部署后先尝试在本地运行初始代码
import tkinter as tk
from datetime import datetime, timedelta
import time
import winsound
class CountdownApp:
def __init__(self, master):
self.master = master
master.title("桌面倒计时")
master.configure(bg='#333333')
# 界面样式设置
self.font_style = ("Arial", 40)
self.small_font = ("Arial", 12)
self.text_color = "#FFFFFF"
self.bg_color = "#333333"
self.button_color = "#555555"
# 创建界面元素
self.create_widgets()
# 初始变量
self.end_time = None
self.running = False
# 窗口置顶
master.attributes('-topmost', True)
def create_widgets(self):
# 时间显示标签
self.time_label = tk.Label(
self.master,
text="00:00:00",
font=self.font_style,
fg=self.text_color,
bg=self.bg_color
)
self.time_label.pack(pady=20)
# 时间输入框架
input_frame = tk.Frame(self.master, bg=self.bg_color)
input_frame.pack(pady=10)
# 小时输入
self.hour_entry = tk.Entry(
input_frame,
width=3,
font=self.small_font,
bg=self.button_color,
fg=self.text_color
)
self.hour_entry.insert(0, "0")
self.hour_entry.pack(side=tk.LEFT, padx=5)
# 分钟输入
self.min_entry = tk.Entry(
input_frame,
width=3,
font=self.small_font,
bg=self.button_color,
fg=self.text_color
)
self.min_entry.insert(0, "0")
self.min_entry.pack(side=tk.LEFT, padx=5)
# 秒输入
self.sec_entry = tk.Entry(
input_frame,
width=3,
font=self.small_font,
bg=self.button_color,
fg=self.text_color
)
self.sec_entry.insert(0, "0")
self.sec_entry.pack(side=tk.LEFT, padx=5)
# 按钮框架
button_frame = tk.Frame(self.master, bg=self.bg_color)
button_frame.pack(pady=20)
# 开始按钮
self.start_button = tk.Button(
button_frame,
text="开始倒计时",
command=self.start_countdown,
bg=self.button_color,
fg=self.text_color
)
self.start_button.pack(side=tk.LEFT, padx=10)
# 重置按钮
self.reset_button = tk.Button(
button_frame,
text="重置",
command=self.reset,
bg=self.button_color,
fg=self.text_color
)
self.reset_button.pack(side=tk.LEFT, padx=10)
def start_countdown(self):
if not self.running:
try:
# 获取输入时间
hours = int(self.hour_entry.get())
mins = int(self.min_entry.get())
secs = int(self.sec_entry.get())
total_seconds = hours*3600 + mins*60 + secs
if total_seconds > 0:
self.end_time = datetime.now() + timedelta(seconds=total_seconds)
self.running = True
self.update_display()
except ValueError:
pass
def update_display(self):
if self.running:
remaining = self.end_time - datetime.now()
if remaining.total_seconds() <= 0:
self.time_label.config(text="00:00:00")
self.running = False
self.play_alarm()
else:
# 格式化时间显示
hours, remainder = divmod(int(remaining.total_seconds()), 3600)
mins, secs = divmod(remainder, 60)
time_str = f"{hours:02d}:{mins:02d}:{secs:02d}"
self.time_label.config(text=time_str)
self.master.after(1000, self.update_display)
def play_alarm(self):
# 播放系统提示音并闪烁窗口
for _ in range(3):
winsound.Beep(1000, 500)
self.master.configure(bg='red')
self.master.update()
time.sleep(0.5)
self.master.configure(bg=self.bg_color)
self.master.update()
time.sleep(0.5)
def reset(self):
self.running = False
self.time_label.config(text="00:00:00")
self.hour_entry.delete(0, tk.END)
self.hour_entry.insert(0, "0")
self.min_entry.delete(0, tk.END)
self.min_entry.insert(0, "0")
self.sec_entry.delete(0, tk.END)
self.sec_entry.insert(0, "0")
if __name__ == "__main__":
root = tk.Tk()
app = CountdownApp(root)
root.mainloop()
点击运行,启动成功,试一下效果,可以输入时分秒,倒计时结束后闪烁红灯并且有蜂鸣声
目前显示界面过大,无法缩小,会影响讲者界面显示,优化一下,增加缩小按钮
界面大小已合适,再适当增加透明度,尽可能小的影响讲者
最后一步,将程序打包成电脑端的可执行文件(exe),使用命令行:pyinstaller --onefile 桌面倒计时.py
成功