Tk组件调用文本文件统计出行记录

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()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值