Day27 用python写UI-聊聊Treeview(一)

终於结束Text的部分啦~~~
今天要来讲Treeview,这个就是树状的意思,像树一样有层次感,可以把资料藏起来,也可以展开。

♠♣今天的文章大纲♥♦

  • Treeview基本参数
  • 阶层式Treeview
  • 插入影像

Treeview基本参数

语法:Treeview(master,options…)

参数 内容
columns 栏位的字串,可以设定栏位数。
cursor 可以设定游标在此控件的外观。
displaycolumns 可以设定栏位显示顺序。 如果参数是"all" 表示显示所有栏位,同时依建立顺序显示。
height 控件每行的高度。
padding 可以使用 1-4 个参数设定内容与控件框的间距。
selectmode 使用者可以使用滑鼠选择项目方式。 selectmode=BROWSE,一次选择一项,预设。selectmode=EXTENDED,次选择多项。selectmode=NONE,无法用滑鼠执行选择。
show 预设是 show="tree"显示图标栏, "show=headings" 不显示图标栏。
takefocus 预设是 True,不想被访问可以设为 False。

建立一个简单的程序

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

tree.pack()
root.mainloop()

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


阶层式Treeview

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('500x200')

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

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

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/20140047WtTbet2eaA.png


插入影像

import tkinter as tk
import tkinter.ttk as ttk
from PIL import Image, ImageTk

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

info = ["Love"]

tree = ttk.Treeview(root,columns =("说明"))

tree.heading("#0",text="Image")
tree.heading("#1",text="Content")
tree.column("#1",width=300)

img1 = Image.open("button.gif")
img= ImageTk.PhotoImage(img1)
tree.insert("",index="end",text="Heart",image=img,values=info[0])

tree.pack()
root.mainloop()

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


Treeview会分两天讲,怕放在一起会太多东西,明天就会讲插入跟删除,就可以自己编辑内容了!
/images/emoticon/emoticon34.gif


<<:  Day28 跟着官方文件学习Laravel-cache

>>:  Day 27 Celery

Web应用扫描工具-Arachni小蜘蛛(中)

昨天我们解决了登入时的小错误 欢迎各位进入到主画面 简单的跟各位介绍一下基本功能 我们可以点选上方的...

Vaadin 对话视窗 Dialog - day17

Vaadin 提供的众多 Components,除了前面范例实作过的 Form Inputs 外,常...

【左京淳的JAVA学习笔记】第四章 回圈

while及do-while回圈 文法如下 while (条件式){ 执行内容 } 当条件式为tru...

[Day 16] MySQL下载注意事项(Mac版)

其实下载流程非常的简单,只需要搜寻MySQL下载 MySQL community Server 和M...

Day 07:「金鱼模仿游戏~」- 用 Tailwind 来对齐内容

(今天切换故事主线了喔,别再吐倒了哦) 相信很多在前端打滚、需要用到 CSS 的人,一定或多或少都...