最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

日程管理工具源碼

2023-07-02 21:05 作者:學(xué)術(shù)追夢人  | 我要投稿

最近到了假期,時間過得很快,但是效率又不高,于是我想到用Python制作一下日程管理工具,用于提醒我抓緊時間做好重要的事情。軟件的圖如下:

軟件的界面

源碼展如如下:

import tkinter as tk

from tkinter import messagebox

from datetime import datetime

import tkinter.font as tkFont

class ScheduleApp:

? ? def __init__(self, master):

? ? ? ? self.master = master

? ? ? ? self.master.title("日程管理1.0 by Gordon")

? ? ? ? self.font = tkFont.Font(family="楷體", size=13)

? ? ? ? # 創(chuàng)建標(biāo)簽、文本框和按鈕

? ? ? ? self.label = tk.Label(master, text="日程:",font=self.font)

? ? ? ? self.label.grid(row=0, column=0, padx=10, pady=10, sticky="e")

? ? ? ??

? ? ? ? self.entry = tk.Entry(master, width=35)

? ? ? ? self.entry.grid(row=0, column=1, padx=10, pady=10, sticky="w",columnspan = 3)

? ? ? ??

? ? ? ? self.time_label = tk.Label(master, text="時間:",font=self.font)

? ? ? ? self.time_label.grid(row=1, column=0, padx=10, pady=10, sticky="e")

? ? ? ??

? ? ? ? # 創(chuàng)建時間選擇框

? ? ? ? self.hour_var = tk.StringVar(master)

? ? ? ? self.minute_var = tk.StringVar(master)

? ? ? ? self.second_var = tk.StringVar(master)

? ? ? ??

? ? ? ? self.hour_var.set("08")

? ? ? ? self.minute_var.set("10")

? ? ? ? self.second_var.set("00")

? ? ? ??

? ? ? ? self.hour_option = tk.OptionMenu(master, self.hour_var, *range(24))

? ? ? ? self.minute_option = tk.OptionMenu(master, self.minute_var, *range(60))

? ? ? ? self.second_option = tk.OptionMenu(master, self.second_var, *range(60))

? ? ? ??

? ? ? ? self.hour_option.grid(row=1, column=1, padx=10, pady=10, sticky="w")

? ? ? ? self.minute_option.grid(row=1, column=2, padx=10, pady=10, sticky="w")

? ? ? ? self.second_option.grid(row=1, column=3, padx=10, pady=10, sticky="w")

? ? ? ??

? ? ? ? self.edit_label = tk.Label(master, text="編輯:",font=self.font)

? ? ? ? self.edit_label.grid(row=2, column=0, padx=10, pady=10, sticky="e")

? ? ? ??

? ? ? ? self.add_btn = tk.Button(master, text="添加", font=self.font, command=self.add_schedule)

? ? ? ? self.add_btn.grid(row=2, column=1, ipadx=7,padx=10, pady=10, sticky="w")

? ? ? ??

? ? ? ? self.modify_btn = tk.Button(master, text="修改", font=self.font, command=self.modify_schedule)

? ? ? ? self.modify_btn.grid(row=2, column=2, ipadx=7, padx=10, pady=10, sticky="w")

? ? ? ??

? ? ? ? self.delete_btn = tk.Button(master, text="刪除", font=self.font, command=self.delete_schedule)

? ? ? ? self.delete_btn.grid(row=2, column=3, ipadx=7, padx=10, pady=10, sticky="w")

? ? ? ??

? ? ? ? # 創(chuàng)建日程列表框

? ? ? ? self.schedule_listbox = tk.Listbox(master,font=self.font,height=6,width=35)

? ? ? ? self.schedule_listbox.grid(row=3, column=0, columnspan=4, padx=10, pady=10)


? ? ? ? # 添加示例數(shù)據(jù)

? ? ? ? self.schedule_list = [("制作每日一句", "07:50:00"), ("做Python題", "08:30:00"), ("馬上關(guān)機(jī)睡覺", "12:24:40")]

? ? ? ? for schedule, _ in self.schedule_list:

? ? ? ? ? ? self.schedule_listbox.insert(tk.END, schedule+":"+_)

? ? ? ? # 創(chuàng)建Label來顯示時間

? ? ? ? self.nowtime_label = tk.Label(root, text="時間", font=("Arial", 16))

? ? ? ? self.nowtime_label.grid(row=4, column=0, columnspan=4, padx=10, pady=1)

? ? ? ? self.update_time()

? ? ? ? # 啟動定時器

? ? ? ? self.check_schedule()

? ? def update_time(self):

? ? ? ? current_time = datetime.now().strftime("%H:%M:%S")

? ? ? ? self.nowtime_label.config(text=f"現(xiàn)在時間:{current_time}")

? ? ? ? self.nowtime_label.after(1000, self.update_time)? # 每隔一秒鐘更新時間

? ? def get_time(self):

? ? ? ? schedule = self.entry.get()

? ? ? ? hour = self.hour_var.get()

? ? ? ? minute = self.minute_var.get()

? ? ? ? second = self.second_var.get()

? ? ? ? time = f"{hour:0>2}:{minute:0>2}:{second:0>2}"

? ? ? ? return schedule,time

? ? def add_schedule(self):

? ? ? ? schedule,time = self.get_time()

? ? ? ? if schedule and time:

? ? ? ? ? ? self.schedule_list.append((schedule, time))

? ? ? ? ? ? self.schedule_listbox.insert(tk.END, schedule+":"+time)

? ? ? ? ? ? self.entry.delete(0, tk.END)

? ? ? ? ? ? self.hour_var.set("08")

? ? ? ? ? ? self.minute_var.set("00")

? ? ? ? ? ? self.second_var.set("00")

? ? ? ? else:

? ? ? ? ? ? messagebox.showwarning("警告", "請輸入事件和時間!")


? ? def modify_schedule(self):

? ? ? ? selected_index = self.schedule_listbox.curselection()

? ? ? ? old_schedule = self.schedule_listbox.get(selected_index)

? ? ? ? if selected_index:

? ? ? ? ? ? schedule,time = self.get_time()

? ? ? ? ? ? if schedule and time:

? ? ? ? ? ? ? ? index = selected_index[0]

? ? ? ? ? ? ? ? self.schedule_list[index] = (schedule, time)

? ? ? ? ? ? ? ? self.schedule_listbox.delete(index)

? ? ? ? ? ? ? ? self.schedule_listbox.insert(index, schedule)

? ? ? ? ? ? ? ? self.entry.delete(0, tk.END)

? ? ? ? ? ? ? ? self.hour_var.set("08")

? ? ? ? ? ? ? ? self.minute_var.set("00")

? ? ? ? ? ? ? ? self.second_var.set("00")

? ? ? ? ? ? elif time and not schedule:

? ? ? ? ? ? ? ? index = selected_index[0]

? ? ? ? ? ? ? ? self.schedule_list[index] = (old_schedule, time)

? ? ? ? ? ? ? ? self.schedule_listbox.delete(index)

? ? ? ? ? ? ? ? self.schedule_listbox.insert(index,old_schedule.split(":")[0]+":"+time)

? ? ? ? ? ? ? ? #self.schedule_listbox.insert(index,old_schedule.split(":")[0]+":"+time)

#? ? ? ? ? ? ? ? ?print(index,self.schedule_list[index])

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? messagebox.showwarning("警告", "請輸入事件和時間!")

? ? ? ? else:

? ? ? ? ? ? messagebox.showwarning("警告", "請選擇要修改的事件!")


? ? def delete_schedule(self):

? ? ? ? # 刪除日程

? ? ? ? selected_index = self.schedule_listbox.curselection()

? ? ? ? if selected_index:

? ? ? ? ? ? index = selected_index[0]

? ? ? ? ? ? self.schedule_list.pop(index)

? ? ? ? ? ? self.schedule_listbox.delete(index)

? ? ? ? ? ? self.entry.delete(0, tk.END)

? ? ? ? ? ? self.hour_var.set("00")

? ? ? ? ? ? self.minute_var.set("00")

? ? ? ? ? ? self.second_var.set("00")

? ? ? ? else:

? ? ? ? ? ? messagebox.showwarning("警告", "請選擇要刪除的事件!")


? ? def show_custom_info(self,message):

? ? ? ? # 設(shè)置自定義的彈窗

? ? ? ? top = tk.Toplevel()

? ? ? ? top.title("提醒")

? ? ? ??

? ? ? ? label = tk.Label(top, text=message, font=("楷體", 18))

? ? ? ? label.pack(padx=100, pady=60)? ? ? ?

? ? ? ??

? ? ? ? button = tk.Button(top, text="OK", width=10, command=top.destroy)

? ? ? ? button.pack(pady=10)

? ? ? ??


? ? def check_schedule(self):

? ? ? ? now = datetime.now().strftime("%H:%M:%S")


? ? ? ? for schedule, time in self.schedule_list:

? ? ? ? ? ? if now == time:

? ? ? ? ? ? ? ? # 調(diào)用自定義消息框

? ? ? ? ? ? ? ? self.show_custom_info(f"提醒!{schedule}".split(":")[0]+f":{time}")

? ? ? ? ? ? ? ? #messagebox.showinfo("提醒", f"該事件已到時:{schedule}{time}")

? ? ? ??

? ? ? ? self.master.after(1000, self.check_schedule)? # 每隔一秒鐘檢查一次日程


# 創(chuàng)建主窗口

root = tk.Tk()


# 實(shí)例化日程管理應(yīng)用程序

app = ScheduleApp(root)


# 運(yùn)行主循環(huán)

root.mainloop()

日程管理工具源碼的評論 (共 條)

分享到微博請遵守國家法律
塔城市| 安顺市| 永川市| 屏东县| 大渡口区| 手游| 方城县| 遵义市| 盘山县| 阿勒泰市| 垦利县| 通州市| 涟水县| 林州市| 丰都县| 郧西县| 三门县| 亚东县| 库尔勒市| 沧源| 高尔夫| 科尔| 扶沟县| 龙游县| 新乡市| 沁阳市| 建平县| 泽库县| 象山县| 镇平县| 如皋市| 垣曲县| 民丰县| 济源市| 延寿县| 宁波市| 绥中县| 北川| 孝感市| 海安县| 安图县|