用deepseek生成一个电脑端倒计时小程序

近期公司要举办一个工作会议,为了更好的提醒讲者时间,要求小编找到一款桌面倒计时程序,网上搜寻无果,于是灵机一动,抱着试一试的心态打开了deepseek,结果误打误撞生成了满足使用的小程序,不得不感叹AI的强劲。

第一,打开deepseek开始提问,由于提问超级宽泛,它将我的要求进行了拆解分析和完善

用deepseek生成一个电脑端倒计时小程序

对deepseek进行提问

用deepseek生成一个电脑端倒计时小程序

对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()

点击运行,启动成功,试一下效果,可以输入时分秒,倒计时结束后闪烁红灯并且有蜂鸣声

用deepseek生成一个电脑端倒计时小程序

点击运行,生成倒计时小程序

用deepseek生成一个电脑端倒计时小程序

倒计时结束后闪烁并蜂鸣

目前显示界面过大,无法缩小,会影响讲者界面显示,优化一下,增加缩小按钮

用deepseek生成一个电脑端倒计时小程序

要求deepseek增加界面缩小显示

用deepseek生成一个电脑端倒计时小程序

增加了缩小按钮

用deepseek生成一个电脑端倒计时小程序

缩小效果

界面大小已合适,再适当增加透明度,尽可能小的影响讲者

用deepseek生成一个电脑端倒计时小程序

要求deepseek增加程序的透明度设置

用deepseek生成一个电脑端倒计时小程序

小程序增加了透明度设置

最后一步,将程序打包成电脑端的可执行文件(exe),使用命令行:pyinstaller –onefile 桌面倒计时.py

用deepseek生成一个电脑端倒计时小程序

使用命令行生成可执行文件

成功

用deepseek生成一个电脑端倒计时小程序

桌面可执行程序

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 共1条

请登录后发表评论