from tkinter import *
from tkinter.ttk import *
def setdat(a):
temp = monsel.get()
if temp == 2:
dat["value"] = tuple(range(1, 29))
elif temp == 4 or temp == 6 or temp == 9 or temp == 11:
dat["value"] = tuple(range(1, 31))
else:
dat["value"] = tuple(range(1, 32))
def get1():
if len(entry.get()) == 0:
return False
else:
h = str(horsel.get()) if horsel.get() > 10 else "0" + str(horsel.get())
m = str(minsel.get()) if minsel.get() > 10 else "0" + str(minsel.get())
item1 = [str(monsel.get()) + "月" + str(datsel.get()) + "日", h + ":" + m, entry.get()]
print(item1)
if not tree.focus() == "":
tree.insert("", tree.index(tree.focus()), values=item1)
del1()
else:
tree.insert("", END, values=item1)
with open("统计个人出行.txt","a+",encoding="utf-8") as f:
for i in item1:
f.write(i+"\t")
f.write("\n")
f.close()
reset1()
def read():
with open("统计个人出行.txt","r",encoding="utf-8") as f:
for line in f:
line=line[:-1]
wb=tuple(line.split("\t"))
tree.insert("", END, values=wb)
f.close()
def del1():
if tree.focus() == "":
return False
else:
temp = tree.set(tree.focus())
tree.delete(tree.focus())
# wb="\t".join(temp.values())
# print(temp["date"],temp["time"],temp["depart"])
with open("统计个人出行.txt", "r", encoding="utf-8") as f:
lines=f.readlines()
f.close()
# print(lines)
with open("统计个人出行.txt", "w", encoding="utf-8") as f_new:
f_new.seek(0)
for line in lines:
if not ((temp["date"] in line) and (temp["time"] in line ) and (temp["depart"] in line)):
f_new.write(line)
f_new.truncate()
f_new.close()
def edt(a):
temp = tree.set(tree.focus())
# print(temp)
d = temp["date"].split("月")
t = temp["time"].split(":")
# print(d,t)
monsel.set(int(d[0]))
datsel.set(int(d[1].split("日")[0]))
horsel.set(int(t[0]))
minsel.set(int(t[1]))
entry.delete(0, END)
entry.insert(INSERT, temp["depart"])
def reset1():
monsel.set(1)
datsel.set(1)
horsel.set(0)
minsel.set(0)
entry.delete(0, END)
win = Tk()
frame = Frame()
frame.grid()
Label(frame, text="日期:").grid(row=0, column=0)
monsel = IntVar()
monsel.set(1)
mon = Combobox(frame, values=tuple(range(1, 13)), textvariable=monsel, width=5)
mon.grid(row=0, column=1)
mon.bind("<<ComboboxSelected>>", setdat)
Label(frame, text="-").grid(row=0, column=2)
datsel = IntVar()
datsel.set(1)
dat = Combobox(frame, values=tuple(range(1, 32)), textvariable=datsel, width=5)
dat.grid(row=0, column=3)
Label(frame, text="时间:").grid(row=0, column=4, columnspan=2, sticky=S + E)
horsel = IntVar()
horsel.set(0)
hor = Spinbox(frame, from_=0, to=24, width=5, textvariable=horsel)
hor.grid(row=0, column=6)
Label(frame, text=":").grid(row=0, column=7)
minsel = IntVar()
minsel.set(0)
min = Spinbox(frame, from_=0, to=59, width=5, textvariable=minsel)
min.grid(row=0, column=8)
Label(frame, text="出发地").grid(row=0, column=9)
entry = Entry(frame)
entry.grid(row=0, column=10)
Button(frame, text="确定", command=get1).grid(row=0, column=11)
Button(frame, text="删除", command=del1).grid(row=0, column=12)
tree = Treeview(win, column=("date", "time", "depart"), show="headings")
tree.heading("date", text="日期")
tree.heading("time", text="时间")
tree.heading("depart", text="出发地")
tree.grid(row=1, column=0,pady=5)
tree.bind("<<TreeviewSelect>>", edt)
read()
win.mainloop()
Tk组件调用文本文件统计出行记录
最新推荐文章于 2024-07-20 17:12:48 发布