Day28 用python写UI-聊聊Treeview(二)

今天的范例也有结合昨天的程序码,要聊聊直接在介面上做增减,等不及的话就赶快往下滑吧~

♠♣今天的文章大纲♥♦

  • 删除项目
  • 插入项目
  • 绑定卷轴

删除项目

import tkinter as tk
import tkinter.ttk as ttk

def remove():
    des = tree.selection()
    for de in des:
        tree.delete(de)

root = tk.Tk()
root.title('cuteluluWindow')
root.configure(bg="#7AFEC6")
root.iconbitmap('heart_green.ico')
root.geometry('500x200')

tree=ttk.Treeview(root,columns=("节日"))
tree.heading("#0",text="节日")
tree.heading("#1",text="日期")

tree.insert("",index="end",text="国庆日",values="10/10")
tree.insert("",index="end",text="圣诞节",values="12/25")
tree.insert("",index="end",text="元旦",values="1/1")
tree.insert("",index="end",text="愚人节",values="4/1")
tree.insert("",index="end",text="儿童节",values="4/4")

btn=tk.Button(root,text="remove",command=remove)
btn.pack(pady=3)

tree.pack()
root.mainloop()

执行结果⬇⬇⬇
https://ithelp.ithome.com.tw/upload/images/20211011/20140047Wzblh2opwk.png
点选要删除的资料,按下remove按键。
https://ithelp.ithome.com.tw/upload/images/20211011/20140047wFcC3ICJ9n.png


插入项目

import tkinter as tk
import tkinter.ttk as ttk

root = tk.Tk()
root.title('cuteluluWindow')
root.configure(bg="#7AFEC6")
root.iconbitmap('heart_green.ico')
root.geometry('800x300')

def remove():
    des = tree.selection()
    for de in des:
        tree.delete(de)
def insert():
    date=dateEntry.get()
    festival=festival.get()
    if(len(date.strip())==0 or len(city.strip())==0):
        return
    tree.insert("","end",text=date,values=(festival))
    dateEntry.delete(0,"end")
    festivalEntry.delete(0,"end")

root.rowconfigure(1,weight=1)
root.columnconfigure(1,weight=1)
root.columnconfigure(3,weight=1)

dateL=tk.Label(root,text="Festival",bg="#7AFEC6",fg="#4A4AFF",font=("Harlow Solid Italic",10,"bold"))
dateL.grid(row=0,column=0,padx=5,pady=3,sticky="w")
dateEntry=tk.Entry()
dateEntry.grid(row=0,column=1,padx=5,pady=3,sticky="w"+"e")
festivalL=tk.Label(root,text=" Date",bg="#7AFEC6",fg="#4A4AFF",font=("Harlow Solid Italic",10,"bold"))
festivalL.grid(row=0,column=2,padx=5,pady=3,sticky="e")
festivalEntry=tk.Entry()
festivalEntry.grid(row=0,column=3,padx=5,pady=3,sticky="w"+"e")

tree=ttk.Treeview(root,columns=("节日"))
tree.heading("#0",text="节日")
tree.heading("#1",text="日期")

tree.insert("",index="end",text="国庆日",values="10/10")
tree.insert("",index="end",text="圣诞节",values="12/25")
tree.insert("",index="end",text="元旦",values="1/1")
tree.insert("",index="end",text="愚人节",values="4/1")
tree.insert("",index="end",text="儿童节",values="4/4")

btn=tk.Button(root,text="remove",command=remove)
btn.grid(row=2,column=2,padx=5,pady=3,sticky="w")
ibtn=tk.Button(root,text="insert",command=insert)
ibtn.grid(row=0,column=4,padx=5,pady=3,sticky="w")
tree.grid(row=1,column=0,columnspan=5,padx=5,pady=3,sticky="w"+"e"+"n"+"s")

root.mainloop()

执行结果⬇⬇⬇
https://ithelp.ithome.com.tw/upload/images/20211011/201400478keajHmFkT.png


绑定卷轴

结合昨天的阶层做范例

import tkinter as tk
import tkinter.ttk as ttk

root = tk.Tk()
root.title('cuteluluWindow')
root.configure(bg="#7AFEC6")
root.iconbitmap('heart_green.ico')
root.geometry('500x100')

Nov={"国庆日":"10/10"}
Dec={"圣诞节":"12/25"}
Jen={"元旦":"1/1"}
Mar={"生日":"3/29"}
Apr={"愚人节":"4/1","儿童节":"4/4"}

tree=ttk.Treeview(root, columns=("festival"))

yscrollbar=tk.Scrollbar(root)  #卷轴
yscrollbar.pack(side="right",fill='y')
yscrollbar.config(command=tree.yview)
tree.configure(yscrollcommand=yscrollbar.set)
tree.column("festival",anchor="center")

tree.heading ("#0",text="节日")
tree.heading("festival", text="日期")
idNov = tree.insert("", index="end", text="Nov")
idDec = tree.insert("", index="end", text="Dec")
idJen = tree.insert("", index="end", text="Jen")
idMar = tree.insert("", index="end", text="Mar")
idApr = tree.insert("", index="end", text="Apr")

for festival in Nov.keys():
    tree.insert(idNov, index="end", text=festival, values=Nov[festival])
for festival in Dec.keys():
    tree.insert(idDec, index="end", text=festival, values=Dec[festival])
for festival in Jen.keys():
    tree.insert(idJen, index="end", text=festival, values=Jen[festival])
for festival in Mar.keys():
    tree.insert(idMar, index="end", text=festival, values=Mar[festival])
for festival in Apr.keys():
    tree.insert(idApr, index="end", text=festival, values=Apr[festival])

tree.pack()
root.mainloop()

执行结果⬇⬇⬇
https://ithelp.ithome.com.tw/upload/images/20211011/20140047QVanEWfhlV.png
往下卷
https://ithelp.ithome.com.tw/upload/images/20211011/201400478uZYewtUv1.png


我们已经剩下最後一个主题了呢,时间过得好快,明後天会是一个大主题,超有趣的喔~
这边先不输是啥主题,明天就跟你们说啦~~~???
/images/emoticon/emoticon39.gif


<<:  D32 - 完赛心得

>>:  Google DSC 你也可以!

总结与心得

经过漫长的环境设定与软件安装後 终於把 SQL Server Failover Cluster 基本...

[Day05] swift & kotlin 入门篇!(3) 基础语法-字串

字串 想当初刚在学习JAVA时 一段 new String("ami") != ...

[Day 19] 第一主餐 pt.11-财报资料,我全都要

上一篇我们修改了资料库 并且成功地把BeautifulSoup的资料送到Database内了 今天我...

[Day12] 团队系统设计 - 估点系统 (下)

上一篇文章分析了 Scrum 团队在估点活动的遭遇的困难,以及滞碍难行之处。今天来分享我时常采用的变...

[Day 14] 实作 API Role-Based Authorization

因为 Ktor 本身只有实作 Authentication 机制,不像 Spring Securit...