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

boyanx8个月前技术教程24

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


成功

标签: 倒计时代码

相关文章

【京张追光者:程序员爸爸的400公里温情代码】

凌晨6:00,张家口某小区车库亮起一道蓝光,93年程序员李航的智能手表自动开启「生存模式」——这是他在京张通勤路上迭代的第7版自研算法,正根据实时降雪预报、儿子足球赛倒计时、妻子体检报告三项数据,调整...

《末日代码》

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

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

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

Python进阶-Day 10 :时间与日期处理

一、学习目标掌握 Python 中 datetime 和 time 模块的基本用法。理解时间戳、日期格式化和时间计算的相关概念。能够编写一个简单的倒计时程序,应用所学知识。二、学习内容与时间安排上午(...

倒计时:11小时7分

艾登在沥青里呼吸。 他的鼻腔灌满冰冷的原油,却闻到1948年波本威士忌的味道。睁开眼时,自己正坐在老式巡逻车里,仪表盘泛着铜绿,后视镜挂着的十字架逆时针旋转。挡风玻璃外是黑白电影质感的街道,穿呢子大衣...

代码情书

我缩在电竞椅里抠脚改代码的时候,绝对想不到三十秒后会和全平台最火的网红接吻。"林深!你写的破程序把夏栀直播间搞崩了!"总监的咆哮震得耳麦都在抖。我手一抖按下F5,直播间突然切到我的摄像...

发表评论    

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