闲来无事,用AI让它加工处理做了一个带界面UI的闹钟程序,但是这个我没有添加铃声,我的库安装不上,然后大家拿到源码可以自己去添加个音频。等时间到了就播放音频!成品在文章底部下方有下载链接(要关闭杀毒软件,不然会误报!)
软件演示:
源码展示:
import tkinter as tk from tkinter import messagebox import time import threading class AlarmClock: def __init__(self, root): self.root = root self.root.title("闹钟") # 设置时间标签和输入框 self.label_year = tk.Label(root, text="年:") self.label_year.grid(row=0, column=0, padx=5, pady=5, sticky=tk.E) self.year_entry = tk.Entry(root, width=5) self.year_entry.grid(row=0, column=1, padx=5, pady=5, sticky=tk.W) self.label_month = tk.Label(root, text="月:") self.label_month.grid(row=0, column=2, padx=5, pady=5, sticky=tk.E) self.month_entry = tk.Entry(root, width=5) self.month_entry.grid(row=0, column=3, padx=5, pady=5, sticky=tk.W) self.label_day = tk.Label(root, text="日:") self.label_day.grid(row=0, column=4, padx=5, pady=5, sticky=tk.E) self.day_entry = tk.Entry(root, width=5) self.day_entry.grid(row=0, column=5, padx=5, pady=5, sticky=tk.W) self.label_hour = tk.Label(root, text="时:") self.label_hour.grid(row=1, column=0, padx=5, pady=5, sticky=tk.E) self.hour_entry = tk.Entry(root, width=5) self.hour_entry.grid(row=1, column=1, padx=5, pady=5, sticky=tk.W) self.label_minute = tk.Label(root, text="分:") self.label_minute.grid(row=1, column=2, padx=5, pady=5, sticky=tk.E) self.minute_entry = tk.Entry(root, width=5) self.minute_entry.grid(row=1, column=3, padx=5, pady=5, sticky=tk.W) self.label_second = tk.Label(root, text="秒:") self.label_second.grid(row=1, column=4, padx=5, pady=5, sticky=tk.E) self.second_entry = tk.Entry(root, width=5) self.second_entry.grid(row=1, column=5, padx=5, pady=5, sticky=tk.W) # 设置和取消按钮 self.set_button = tk.Button(root, text="设置闹钟", command=self.set_alarm) self.set_button.grid(row=2, column=2, padx=5, pady=5) self.cancel_button = tk.Button(root, text="取消闹钟", command=self.cancel_alarm) self.cancel_button.grid(row=2, column=4, padx=5, pady=5) # 显示消息的标签 self.message_label = tk.Label(root, text="") self.message_label.grid(row=3, columnspan=6, padx=5, pady=5) # 设置列和行的权重以使界面自适应 for i in range(6): root.grid_columnconfigure(i, weight=1) for i in range(4): root.grid_rowconfigure(i, weight=1) self.alarm_time = None self.alarm_active = False def set_alarm(self): year = self.year_entry.get() month = self.month_entry.get() day = self.day_entry.get() hour = self.hour_entry.get() minute = self.minute_entry.get() second = self.second_entry.get() try: # 格式化输入的时间 self.alarm_time = f"{int(year)}-{int(month):02}-{int(day):02} {int(hour):02}:{int(minute):02}:{int(second):02}" self.alarm_active = True self.message_label.config(text=f"闹钟设置为: {self.alarm_time}") except ValueError: messagebox.showerror("错误", "请输入有效的日期和时间。") self.clear_entries() return threading.Thread(target=self.check_alarm, daemon=True).start() def check_alarm(self): while self.alarm_active: current_time = time.strftime("%Y-%m-%d %H:%M:%S") if current_time == self.alarm_time: messagebox.showinfo("闹钟", "时间到!") self.alarm_active = False time.sleep(1) def cancel_alarm(self): if self.alarm_active: self.alarm_active = False self.message_label.config(text="闹钟已取消。") else: self.message_label.config(text="没有设置闹钟。") def clear_entries(self): self.year_entry.delete(0, tk.END) self.month_entry.delete(0, tk.END) self.day_entry.delete(0, tk.END) self.hour_entry.delete(0, tk.END) self.minute_entry.delete(0, tk.END) self.second_entry.delete(0, tk.END) if __name__ == "__main__": root = tk.Tk() alarm_clock = AlarmClock(root) root.mainloop()
转载请注明:宗宗酱-(电击小子)++>Python写的一个闹钟程序