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

boyanx2个月前技术教程10

近期公司要举办一个工作会议,为了更好的提醒讲者时间,要求小编找到一款桌面倒计时程序,网上搜寻无果,于是灵机一动,抱着试一试的心态打开了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


成功

标签: 倒计时代码

相关文章

再挑战,用AI助手15分钟开发倒计时工具!家长上班族必备神器

前天用Cursor结合Deepseek做了一个倒计时工具,花了30分钟,今天再挑战用Vscode+通义灵码完成。没想到仅用15分钟就完成了专业级工具开发!现将完整对话过程分享给大家,见证AI编程的神奇...

自己编写的PPT悬浮倒计时小工具,python带你玩嗨起来

演讲、比赛,限时五分钟,一到时间,PPT 便会自动关闭。然而,在开始之前,您是否仍为四处下载 PPT 悬浮计时小工具而烦忧?抑或下载下来的不仅需要安装,还得收费?大家好,我是诸位所熟知的浪仔,一位 P...

公司电脑自动群发裸聊:代码溯源到已故程序员38

公司电脑群发裸聊视频那事是我捅出来的。早上九点刚摸进技术部办公室,键盘声噼里啪啦响得跟放鞭炮似的。王胖子突然嗷一嗓子,说全集团电脑都在自动往外发黄色视频。我冲过去扒拉他电脑,后台代码里明晃晃挂着...

周五牛马の极限倒计时 | 用魔法把24小时揉成1分钟!

早晨9:05 の 咖啡因蹦迪 冰美式混跳跳糖 → 舌尖蹦迪唤醒灵魂(咖啡渍占卜:若出现「笑脸」= 今日摸鱼成功率99%)逃亡神器: 「防老板雷达表」 → 表盘变红=领导逼近,秒切严肃脸 「带薪拉屎计...

《末日代码》

核战倒计时第7小时,我破解了五角大楼的量子加密文件。"阻止发射的密码是...KFC-CRAZY-THURSDAY-VME50?"实验室的警报红光中,我盯着全息投影上的乱码。太平洋深处的...

如何在Excel表格中做一个时间倒计时效果#Excel...

时间倒计时案例制作。哈喽大家好,这视频讲一个时间倒计时案例的制作。接上个视频讲了一个日期倒计时的案例,有小伙伴私信我可不可以做一个时间的倒计时。什么意思?比如这里要一个小时的倒计时,就可以在这里来给它...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。