欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁(yè) > 知識(shí)庫(kù) > Python tkinter 樹(shù)形列表控件(Treeview)的使用方法

Python tkinter 樹(shù)形列表控件(Treeview)的使用方法

熱門(mén)標(biāo)簽:廣東旅游地圖標(biāo)注 電話(huà)外呼系統(tǒng)招商代理 淮安呼叫中心外呼系統(tǒng)如何 打印谷歌地圖標(biāo)注 電話(huà)機(jī)器人貸款詐騙 佛山通用400電話(huà)申請(qǐng) 看懂地圖標(biāo)注方法 蘇州人工外呼系統(tǒng)軟件 京華圖書(shū)館地圖標(biāo)注

1.方法

方法 描述
bbox(item, column=None) 返回指定item的框選范圍,或者單元格的框選范圍
column( cid, option=None, **kw) 設(shè)置或者查詢(xún)某一列的屬性
delete(*items) 刪除指定行或者節(jié)點(diǎn)(含子節(jié)點(diǎn))
vdetach(*items) 與delete類(lèi)似,不過(guò)不是真正刪除,而是隱藏了相關(guān)內(nèi)容。可以用move方法重新顯示v
exists(item) 判斷指定的item是否存在
focus(item=None) 獲得選定item的iid,或者選中指定item。
get_children(item=None) 返回指定item的子節(jié)點(diǎn)
heading(column, option=None, **kw) 設(shè)置或者查詢(xún)表頭行的配置參數(shù)
identify(component, x, y) 返回在坐標(biāo)(x,y)處的部件信息。部件包括:region(heading,cell等), item, column, row, 和 element。
identify_element(x, y) 返回在(x,y)處的元素。
identify_region(x, y) 返回坐標(biāo)(x,y)處的Tree view組成部分
identify_row(y) 給定y坐標(biāo),返回指定item索引
index(item) 返回?cái)?shù)字化的item索引,從0開(kāi)始
set_children(item, *newchildren) 設(shè)置item的新子節(jié)點(diǎn)為newchildren,現(xiàn)有的子節(jié)點(diǎn)會(huì)被移除。一般用于樹(shù)形結(jié)構(gòu)中。
insert(parent, index, iid=None, **kw) 插入一個(gè)新的item
item(item, option=None, **kw) 返回item節(jié)點(diǎn)的相關(guān)信息
move(item, parent, index) move()方法有兩種作用:
(1)將detach的item重新顯示(reattach)
(2)移動(dòng)item指定的節(jié)點(diǎn)到parent的子節(jié)點(diǎn)中,位置由index指定
next(item) 返回item的下一個(gè)節(jié)點(diǎn)
parent(item) 返回item的父節(jié)點(diǎn)
prev(item) 返回item的前一個(gè)節(jié)點(diǎn)
see(item) 保證item指定的節(jié)點(diǎn)在Treeview控件中可見(jiàn)
selection(items=None) 返回當(dāng)前選定的節(jié)點(diǎn)的iid
selection_set(*items) 選中items指定的節(jié)點(diǎn)
selection_remove(*items) 從當(dāng)前選擇中移除items指定的節(jié)點(diǎn)
selection_add(*items) 將items指定的節(jié)點(diǎn)添加到當(dāng)前的選擇中
selection_toggle(*items) 選中的節(jié)點(diǎn)變?yōu)椴贿x中,未選中的節(jié)點(diǎn)變?yōu)檫x中
set(item, column=None, value=None) 設(shè)置或者獲得節(jié)點(diǎn)信息
tag_bind( tagname, sequence=None, callback=None) 給tagname指定的tag綁定事件以及回調(diào)函數(shù)
tag_configure( tagname, option=None, **kw) 配置或者獲得tag的有關(guān)信息
tag_has(tagname, item=None) 判斷tag是否存在或者是tag與那些節(jié)點(diǎn)關(guān)聯(lián)

1.1 bbox(item, column=None)

獲取指定item的框選范圍。如果指定的item可見(jiàn),返回值是一個(gè)四元組(x,y,w,h)。(x,y)是矩形框選的左上角坐標(biāo),(w,h)是矩形的寬度與高度。有這個(gè)四元組設(shè)定的矩形正好可以框選指定的item。如果column不為空,返回的是指定單元格的框選范圍。

坐標(biāo)值是以Treeview控件為基準(zhǔn)的,而不是以窗口或者屏幕。

import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('320x240')
tk.Label(root,text='成績(jī)表').pack()
area=('#','數(shù)學(xué)','語(yǔ)文','英語(yǔ)')
ac=('all','m','c','e')
data=[('張三','90','88','95'),
      ('李四','100','92', '90'),
      ('王二','88','90', '91')
      ]
tv=ttk.Treeview(root,columns=ac,show='headings',
                height=7,padding=(10,5,20,30))
for i in range(4):
    tv.column(ac[i],width=70,anchor='e')
    tv.heading(ac[i],text=area[i])
tv.pack()
for i in range(3):
    tv.insert('','end',values=data[i])
def select(*args):
    print(tv.bbox(tv.selection()))
    print(tv.bbox(tv.selection(),column='c'))   
tv.bind('TreeviewSelect>>',select)
root.mainloop()

 結(jié)果:
(11, 50, 280, 20)
(151, 50, 70, 20)

說(shuō)明:輸出的結(jié)果有2個(gè),一個(gè)是選中行的框選范圍,一個(gè)是選中行的第三個(gè)單元格的框選范圍。

1.2 column( cid, option=None, **kw)

查詢(xún)或者修改指定列的配置。cid可以是整數(shù),也可以列的別名。如果不輸入option,則返回目前的配置選項(xiàng)字典。
Treeview列的選項(xiàng)有:

選項(xiàng) 含義
anchor 對(duì)齊模式。取值有n,e,s,w,ne,nw,se,sw和center。
id 列的名稱(chēng)或者標(biāo)識(shí)
minwidth 列的最小寬度,調(diào)整列寬的時(shí)候,不會(huì)小于這個(gè)數(shù)值。默認(rèn)值是20
stretch 是否隨著窗口大小的調(diào)整而拉伸Treeview。默認(rèn)值是True
width 定義列寬。默認(rèn)值是200

查詢(xún)代碼:

import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('320x240')
tk.Label(root,text='成績(jī)表').pack()
area=('#','數(shù)學(xué)','語(yǔ)文','英語(yǔ)')
ac=('all','m','c','e')
data=[('張三','90','88','95'),
      ('李四','100','92', '90'),
      ('王二','88','90', '91')
      ]
tv=ttk.Treeview(root,columns=ac,show='headings',
                height=7,padding=(10,5,20,30))
for i in range(4):
    tv.column(ac[i],width=70,anchor='e')
    tv.heading(ac[i],text=area[i])
tv.pack()
for i in range(3):
    tv.insert('','end',values=data[i])   
print(tv.column(3))
root.mainloop()

結(jié)果:
{'width': 70, 'minwidth': 20, 'stretch': 1, 'anchor': 'e', 'id': 'e'}

設(shè)置代碼:

import tkinter as tk
from tkinter import ttk 
root = tk.Tk()
root.geometry('320x240')
tk.Label(root,text='成績(jī)表').pack()
area=('#','數(shù)學(xué)','語(yǔ)文','英語(yǔ)')
ac=('all','m','c','e')
data=[('張三','90','88','95'),
      ('李四','100','92', '90'),
      ('王二','88','90', '91')
      ]
tv=ttk.Treeview(root,columns=ac,show='headings',
                height=5)
for i in range(4):
    tv.column(ac[i],width=70,anchor='e')
    tv.heading(ac[i],text=area[i])
tv.pack()
for i in range(3):
    tv.insert('','end',values=data[i])
def column():
    tv.column(2,width=50)
ttk.Button(root,text='Column',command=column).pack()
root.mainloop()

結(jié)果:

說(shuō)明:點(diǎn)擊'Column'按鈕后,語(yǔ)文成績(jī)那一列的寬度由70變?yōu)?0。

1.3 delete(items)

刪除指定的item。子節(jié)點(diǎn)也會(huì)被一起刪除,但是第一層節(jié)點(diǎn)不會(huì)被刪除。

import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('320x240')
tk.Label(root,text='成績(jī)表').pack()
area=('#','數(shù)學(xué)','語(yǔ)文','英語(yǔ)')
ac=('all','m','c','e')
data=[('張三','90','88','95'),
      ('李四','100','92', '90'),
      ('王二','88','90', '91')
      ]
tv=ttk.Treeview(root,columns=ac,show='headings',
                height=5)
for i in range(4):
    tv.column(ac[i],width=70,anchor='e')
    tv.heading(ac[i],text=area[i])
tv.pack()
for i in range(3):
    tv.insert('','end',values=data[i])
def delete():
    tv.delete(tv.selection())
ttk.Button(root,text='Delete',command=delete).pack()
root.mainloop()

結(jié)果:

1.4 detach(items)

detach的方法與delete類(lèi)似,不過(guò)detach不是真正的刪除了指定的item,而是隱藏了內(nèi)容,可以使用move的方法重新將隱藏的數(shù)據(jù)再顯示出來(lái)。

import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('320x240')
tk.Label(root,text='成績(jī)表').pack()
area=('#','數(shù)學(xué)','語(yǔ)文','英語(yǔ)')
ac=('all','m','c','e')
data=[('張三','90','88','95'),
      ('李四','100','92', '90'),
      ('王二','88','90', '91')
      ]
tv=ttk.Treeview(root,columns=ac,show='headings',
                height=5)
for i in range(4):
    tv.column(ac[i],width=70,anchor='e')
    tv.heading(ac[i],text=area[i])
tv.pack()
for i in range(3):
    tv.insert('','end',values=data[i])
detach=None
index=None
def detach():
    global detach
    global index
    detach=tv.selection()
    index=tv.index(detach)
    tv.detach(detach)
def attach():
    global detach
    global index
    if detach:
        tv.move(detach,'',index)
ttk.Button(root,text='Detach',command=detach).pack()
ttk.Button(root,text='Attach',command=attach).pack()
root.mainloop()

說(shuō)明:先選中一行,然后點(diǎn)擊'Detach'按鈕,此時(shí)會(huì)將選中的行隱藏。但是相關(guān)的id和index會(huì)依舊被記錄。再點(diǎn)擊'Attach'按鈕,使用move()方法就會(huì)重新顯示隱藏的數(shù)據(jù)。

1.5 exists(item)

判斷指定的item是否存在。需要注意的是,使用detach()方法隱藏的item會(huì)被認(rèn)為是存在的,因?yàn)橄鄳?yīng)的id等信息是依然被系統(tǒng)記錄沒(méi)有清空的。返回值為T(mén)rue,如果指定的item不存在,否則返回False。

import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('320x240')
tk.Label(root,text='成績(jī)表').pack()
area=('#','數(shù)學(xué)','語(yǔ)文','英語(yǔ)')
ac=('all','m','c','e')
data=[('張三','90','88','95'),
      ('李四','100','92', '90'),
      ('王二','88','90', '91')
      ]
tv=ttk.Treeview(root,columns=ac,show='headings',
                height=5)
for i in range(4):
    tv.column(ac[i],width=70,anchor='e')
    tv.heading(ac[i],text=area[i])
tv.pack()
for i in range(3):
    tv.insert('','end',values=data[i])
print(tv.exists('I002'))
root.mainloop()

結(jié)果:
結(jié)果為T(mén)rue

1.6 focus(item=None)

focus()方法有三種情況:
(1)有item被選中同時(shí)參數(shù)為None
返回當(dāng)前被選中的item的標(biāo)識(shí)iid
(2)無(wú)item被選中同時(shí)參數(shù)為None
返回空字符串''
(3)輸入item參數(shù)
指定的item會(huì)獲得focus。
注意:獲得focus不表示被選中。

#有item被選中同時(shí)參數(shù)為None,返回iid
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('320x240')
tk.Label(root,text='成績(jī)表').pack()
area=('#','數(shù)學(xué)','語(yǔ)文','英語(yǔ)')
ac=('all','m','c','e')
data=[('張三','90','88','95'),
      ('李四','100','92', '90'),
      ('王二','88','90', '91')
      ]
tv=ttk.Treeview(root,columns=ac,show='headings',
                height=5)
for i in range(4):
    tv.column(ac[i],width=70,anchor='e')
    tv.heading(ac[i],text=area[i])
tv.pack()
for i in range(3):
    tv.insert('','end',values=data[i])
def focus():
    print(tv.focus())
ttk.Button(root,text='Focus',command=focus).pack()

root.mainloop()

結(jié)果:

結(jié)果為:I003

#無(wú)item被選中同時(shí)參數(shù)為None
#item參數(shù)不為空
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('320x240')
tk.Label(root,text='成績(jī)表').pack()
area=('#','數(shù)學(xué)','語(yǔ)文','英語(yǔ)')
ac=('all','m','c','e')
data=[('張三','90','88','95'),
      ('李四','100','92', '90'),
      ('王二','88','90', '91')
      ]
tv=ttk.Treeview(root,columns=ac,show='headings',
                height=5)
for i in range(4):
    tv.column(ac[i],width=70,anchor='e')
    tv.heading(ac[i],text=area[i])
tv.pack()
for i in range(3):
    tv.insert('','end',values=data[i])
def focus():
    tv.focus('I002')
    print(tv.focus())
ttk.Button(root,text='Focus',command=focus).pack()
root.mainloop()

注:使用focus()方法,并不會(huì)讓獲得focus的item被高亮顯示。如果要高亮顯示,請(qǐng)使用selection_set()方法。

1.7 get_children(item=None)

返回指定item的子節(jié)點(diǎn)。如果該item沒(méi)有子節(jié)點(diǎn)返回None。如果沒(méi)有指定節(jié)點(diǎn),默認(rèn)返回root節(jié)點(diǎn)的子節(jié)點(diǎn)。

1.8 heading(column, option=None, **kw)

設(shè)置或者查詢(xún)表頭行的配置參數(shù)。如果是表格形式的,column是列的位置(就是第幾列,從0計(jì)數(shù))或者列的別名。如果是樹(shù)形結(jié)構(gòu)的(比如文件目錄),column的值為'#0'。
如果沒(méi)有option參數(shù),返回的是當(dāng)前的配置數(shù)據(jù)。
heading的選項(xiàng)有:

選項(xiàng) 含義
anchor 對(duì)齊模式。取值有n,e,s,w,ne,nw,se,sw和center。
command 與指定列相關(guān)的回調(diào)函數(shù)
image 在表頭顯示圖片
text 在表頭顯示文本
state 當(dāng)前列的狀態(tài)

import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('320x240')
tk.Label(root,text='成績(jī)表').pack()
area=('#','數(shù)學(xué)','語(yǔ)文','英語(yǔ)')
ac=('all','m','c','e')
data=[('張三','90','88','95'),
      ('李四','100','92', '90'),
      ('王二','88','90', '91')
      ]
tv=ttk.Treeview(root,columns=ac,show='headings',
                height=5)
for i in range(4):
    tv.column(ac[i],width=70,anchor='e')
    tv.heading(ac[i],text=area[i])
tv.pack()
for i in range(3):
    tv.insert('','end',values=data[i])
def heading():
    print(tv.heading(column=1))
ttk.Button(root,text='Heading',command=heading).pack()
root.mainloop()

結(jié)果:
{'text': '數(shù)學(xué)', 'image': '', 'anchor': 'center', 'command': '', 'state': ''}

1.9 identify(component, x, y)

返回在坐標(biāo)(x,y)處的部件信息。部件包括:region(heading,cell等), item, column, row, 和 element。

import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('320x240')
tk.Label(root,text='成績(jī)表').pack()
area=('#','數(shù)學(xué)','語(yǔ)文','英語(yǔ)')
ac=('all','m','c','e')
data=[('張三','90','88','95'),
      ('李四','100','92', '90'),
      ('王二','88','90', '91')
      ]
tv=ttk.Treeview(root,columns=ac,show='headings',
                height=5)
for i in range(4):
    tv.column(ac[i],width=70,anchor='e')
    tv.heading(ac[i],text=area[i])
tv.pack()
for i in range(3):
    tv.insert('','end',values=data[i])
def identify():
    print(tv.identify('region',120,30))
ttk.Button(root,text='Identify',command=identify).pack()
root.mainloop()

結(jié)果:
cell

1.10 identify_column(x)

給定x坐標(biāo),返回所屬的列號(hào)。返回值的格式是'#n'。n是從1開(kāi)始計(jì)數(shù)的列號(hào)。注意返回的是實(shí)際的顯示列號(hào),而不是邏輯定義的列號(hào)。如果使用了displaycolumns就可以實(shí)際顯示的列號(hào)與columns定義的列號(hào)是不一致的情況。具體的用法與identify類(lèi)似,可以參考。

1.11 identify_element(x, y)

返回在(x,y)處的元素。使用方法是: tv.identify_element(140,25)

1.12 identify_region(x, y)

返回坐標(biāo)(x,y)處的Tree view組成部分。Treeview 的組成部分有:

組成部分 含義
nothing 不在Treeview控件內(nèi)
heading 位于表頭的位置
separator 在分隔線(xiàn)上
tree 位于圖標(biāo)列(樹(shù)形列表表示展開(kāi)/折疊的圖標(biāo))
cell 位于單元格內(nèi)

使用方法是:

tv.identify_region(140,25)

1.13 identify_row(y)

給定y坐標(biāo),返回指定item索引(如‘I002')。如果沒(méi)有內(nèi)容,返回空字符串。
使用方法:

tv.index(‘I002')

1.14 index(item)

返回?cái)?shù)字化的item索引,計(jì)數(shù)從0開(kāi)始。使用方法:

tv.index(‘I002')

1.15 set_children(item, newchildren)

設(shè)置item的新子節(jié)點(diǎn)為newchildren,現(xiàn)有的子節(jié)點(diǎn)會(huì)被移除。一般用于樹(shù)形結(jié)構(gòu)中。

tv.set_children('I003','I00E')

說(shuō)明:將I00E作為新的I003的子節(jié)點(diǎn)。

1.16 insert(parent, index, iid=None, **kw)

插入一個(gè)新的item。
(1)parent
對(duì)于表格類(lèi)型的Treeview,parent一般為空。對(duì)于樹(shù)形類(lèi)型的Treeview,parent為父節(jié)點(diǎn)。
(2)index
指明在何處插入新的item。可以是'end',也可以是數(shù)字。比如,如果要讓新插入的item成為第一個(gè)子節(jié)點(diǎn)或者在第一行,index就設(shè)為0。如果是第二個(gè)子節(jié)點(diǎn)或者第二行,就是設(shè)置index=1。如果在最末端插入item,就設(shè)置index='end'
(3)iid
如果沒(méi)有賦值,就使用系統(tǒng)自動(dòng)生成的id。如果輸入了id,必須保證與現(xiàn)有的id不重復(fù)。否則系統(tǒng)會(huì)自動(dòng)生成id。
(4)**kw
設(shè)置插入item的屬性。支持的屬性有:

選項(xiàng) 含義
image 顯示圖像
open 針對(duì)樹(shù)形結(jié)構(gòu),確認(rèn)插入的item是打開(kāi)還是折疊狀態(tài)。True打開(kāi),F(xiàn)alse為折疊。
tags 為新插入的item設(shè)置tag標(biāo)簽
text 顯示文字
values 在表格結(jié)構(gòu)中,要顯示的數(shù)值。這些數(shù)值是按照邏輯結(jié)構(gòu)賦值的,也就是按照columns設(shè)定的列次序來(lái)賦值。如果輸入的個(gè)數(shù)少于columns指定列數(shù),則插入空白字符串

在前面章節(jié)的例子中已經(jīng)使用了insert,可以參考。

1.17 item(item, option=None, **kw)

item()方法有3種功能:
(1)只有item參數(shù)
返回item有關(guān)數(shù)據(jù)字典。數(shù)據(jù)字典的鍵值(key)包括:
text,image,open,tags以及values。values就是item參數(shù)指定的節(jié)點(diǎn)的內(nèi)容。

tv.item('I002')

結(jié)果:
{'text': '', 'image': '', 'values': ['李四', 100, 92, 90], 'open': 0, 'tags': ''}

(2)輸入item和option參數(shù)
返回item指定節(jié)點(diǎn)中由option指定的選項(xiàng)值。比如:

tv.item('I002',option='values')

就是返回節(jié)點(diǎn)的內(nèi)容。見(jiàn)前一節(jié)有關(guān)返回?cái)?shù)據(jù)字典的鍵值。

(3)item和kw
使用
kw中的鍵值對(duì)(就是選項(xiàng)值)修改item指定的節(jié)點(diǎn)的相關(guān)選項(xiàng)。最常用的是使用values來(lái)修改節(jié)點(diǎn)的內(nèi)容。
比如:

tv.item('I002',values=('李峰','90','88','66'))

結(jié)果:

可以看到第二行的數(shù)據(jù)被修改了。

1.18 move(item, parent, index)

move()方法有兩種作用:
(1)將detach的item重新顯示(reattach)
(2)移動(dòng)item指定的節(jié)點(diǎn)到parent的子節(jié)點(diǎn)中,位置由index指定
需要注意的是,不能把父節(jié)點(diǎn)移動(dòng)到子節(jié)點(diǎn)下面。因?yàn)檫@是無(wú)法實(shí)現(xiàn)的。還有就是index的值如果是0或者負(fù)數(shù),則表示item的位置在parent的第一個(gè)子節(jié)點(diǎn)。如果index的值大于或者等于子節(jié)點(diǎn)的總數(shù),則表示把item放置在子節(jié)點(diǎn)的最后一個(gè)。

1.19 next(item)

(1)如果item不是當(dāng)前父節(jié)點(diǎn)的最后一個(gè)子節(jié)點(diǎn),則返回下一個(gè)子節(jié)點(diǎn)
(2)如果item已經(jīng)是最后一個(gè)子節(jié)點(diǎn),返回空字符串
(3)如果是表格類(lèi)型的Treeview,則返回下一item對(duì)象。或者返回空字符串如果item已經(jīng)是最后一個(gè)item對(duì)象。

1.20 parent(item)

樹(shù)形結(jié)構(gòu)的Treeview,該方法返回父節(jié)點(diǎn)的ID;如果是表格類(lèi)型的Treeview,則返回空字符串。

1.21 prev(item)

與next()類(lèi)似,不過(guò)是返回前一個(gè)item的ID。

1.22 see(item)

保證item指定的節(jié)點(diǎn)在Treeview控件中可見(jiàn)。針對(duì)有比較多節(jié)點(diǎn)的情況下,此方法可以讓希望顯示的節(jié)點(diǎn)快速顯示在窗口中而不需要用滾動(dòng)條的去滾動(dòng)。

1.23 selection(items=None)

返回當(dāng)前選定的節(jié)點(diǎn)的iid。

1.24 selection_set(items)

選中item指定的節(jié)點(diǎn)。items可以是單個(gè)節(jié)點(diǎn)的ID,或者多個(gè)節(jié)點(diǎn)ID的元組。

import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('320x240')
tk.Label(root,text='成績(jī)表').pack()
area=('#','數(shù)學(xué)','語(yǔ)文','英語(yǔ)')
ac=('all','m','c','e')
data=[('張三','90','88','95'),
      ('李四','100','92', '90'),
      ('王二','88','90', '91')
      ]
tv=ttk.Treeview(root,columns=ac,show='headings',
                height=5)
for i in range(4):
    tv.column(ac[i],width=70,anchor='e')
    tv.heading(ac[i],text=area[i])
tv.pack()
for i in range(3):
    tv.insert('','end',values=data[i])
def selection():
    tv.selection_set('I001','I002')
ttk.Button(root,text='Selection',command=selection).pack()
root.mainloop()

結(jié)果:

1.25 selection_remove(items)

與selection_set()相反,selection_remove()是把items指定的節(jié)點(diǎn)從選擇中移除。

1.26 selection_add(items)

將items指定所有節(jié)點(diǎn)加入到選中的集合中。那么selection_add()與selection_set()的區(qū)別是什么?selection_set相當(dāng)于重置選擇的節(jié)點(diǎn),不管以前是如何選擇的,執(zhí)行selection_set后,只有selection_set中輸入的items節(jié)點(diǎn)會(huì)被選中。而selection_add()對(duì)當(dāng)前的選選擇沒(méi)有影響,只是把items指定的節(jié)點(diǎn)添加到選擇的集合中。

1.27 selection_toggle(items)

該方法的作用相當(dāng)于數(shù)字電路中的非門(mén),就是已經(jīng)選中的節(jié)點(diǎn)變?yōu)闉檫x中,沒(méi)有選中的節(jié)點(diǎn)變?yōu)檫x中。

1.28 set(item, column=None, value=None)

(1)只有item
返回指定節(jié)點(diǎn)(行)的數(shù)據(jù)字典。字典的鍵值是columns屬性定義的列的別名,而對(duì)應(yīng)的數(shù)值就是節(jié)點(diǎn)(行)的內(nèi)容。此種用法相當(dāng)于獲取指定節(jié)點(diǎn)的行內(nèi)容與列別名信息。

(2)只有item和column
返回由item和column指定的單元格的內(nèi)容。column的取值是別名。

tv.set('I002',column='all')

(3)item,column和value
如果三個(gè)參數(shù)都有值,那么會(huì)修改由item和column指定的單元格的內(nèi)容。

tv.set('I002',column='all',value='abc')

1.29 tag_bind( tagname, sequence=None, callback=None)

將tagname指定的tag與sequence指定事件綁定,回調(diào)函數(shù)由callback設(shè)定。需要注意的是,一個(gè)tag可能與多個(gè)節(jié)點(diǎn)相關(guān)。也就是說(shuō),可能會(huì)有多個(gè)item與事件綁定。

import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry('320x240')
tk.Label(root,text='成績(jī)表').pack()
area=('#','數(shù)學(xué)','語(yǔ)文','英語(yǔ)')
ac=('all','m','c','e')
data=[('張三','90','88','95'),
      ('李四','100','92', '90'),
      ('王二','88','90', '91')
      ]
tv=ttk.Treeview(root,columns=ac,show='headings',
                height=5)
for i in range(4):
    tv.column(ac[i],width=70,anchor='e')
    tv.heading(ac[i],text=area[i])
tv.pack()
for i in range(3):
    tv.insert('','end',values=data[i],tags=str(i))
def tb(*args):
    print(*args)
def bind():
    tv.tag_bind('1',sequence='Button-1>',
                callback=tb)
ttk.Button(root,text='Bind',command=bind).pack()
root.mainloop()

結(jié)果:
ButtonPress event state=Mod1 num=1 x=131 y=61>

說(shuō)明:給插入的數(shù)據(jù)每一行都設(shè)定一個(gè)tag,比如第一行的tag是'0',等等。然后通過(guò)tag_bind()方法綁定鼠標(biāo)左鍵事件。

1.30 tag_configure( tagname, option=None, **kw)

與item()方法有些類(lèi)似,也是有三種功能:
(1)只有tagname
返回tagname指定tag的選項(xiàng)/屬性數(shù)據(jù)字典。比如tv.tag_configure(‘2')的返回值為:
{‘text': ‘', ‘image': ‘', ‘a(chǎn)nchor': ‘', ‘background': ‘', ‘foreground': ‘', ‘font': ‘'}

(2)tagname和option
返回tagname指定的tag中option指定的屬性值。比如option='anchor',則返回anchor屬性值。

(3)tagname和kw
對(duì)tagname指定的tag,使用kw中的參數(shù)設(shè)置有關(guān)屬性。屬性值見(jiàn)(1)中的說(shuō)明。

1.31 tag_has(tagname, item=None)

(1)只有tagname
返回所有與tagname指定的tag有關(guān)的子節(jié)點(diǎn)。

(2)tagname和item
如果item指定的子節(jié)點(diǎn)的有tagname指定的tag,則返回True,否則返回False。判斷tag是否存在。

到此這篇關(guān)于Python tkinter 樹(shù)形列表控件(Treeview)的使用方法的文章就介紹到這了,更多相關(guān)Python tkinter 樹(shù)形列表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python3使用tkinter實(shí)現(xiàn)ui界面簡(jiǎn)單實(shí)例
  • Python tkinter模塊彈出窗口及傳值回到主窗口操作詳解
  • Python升級(jí)提示Tkinter模塊找不到的解決方法
  • Python Tkinter簡(jiǎn)單布局實(shí)例教程
  • Python 窗體(tkinter)下拉列表框(Combobox)實(shí)例
  • 對(duì)Python 窗體(tkinter)樹(shù)狀數(shù)據(jù)(Treeview)詳解
  • Python tkinter label 更新方法
  • python 實(shí)現(xiàn)在tkinter中動(dòng)態(tài)顯示label圖片的方法
  • Python tkinter的grid布局及Text動(dòng)態(tài)顯示方法
  • Python中使用Tkinter模塊創(chuàng)建GUI程序?qū)嵗?/li>

標(biāo)簽:衡水 駐馬店 畢節(jié) 股票 中山 江蘇 湖州 呼和浩特

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python tkinter 樹(shù)形列表控件(Treeview)的使用方法》,本文關(guān)鍵詞  Python,tkinter,樹(shù)形,列表,控件,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python tkinter 樹(shù)形列表控件(Treeview)的使用方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Python tkinter 樹(shù)形列表控件(Treeview)的使用方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    成人欧美一区二区三区黑人麻豆 | 欧美视频一区二区三区四区 | 欧美亚洲动漫制服丝袜| 日本一区二区在线不卡| 精品在线视频一区| 成人免费看aa片| 91精品国产全国免费观看| 亚洲二区在线观看| 国模无码视频一区| 88在线观看91蜜桃国自产| 亚洲成人激情综合网| 亚洲国产精品第一页| 欧美日本乱大交xxxxx| 亚洲午夜影视影院在线观看| 佐佐木明希电影| 欧美日韩极品在线观看一区| 亚洲一区二区三区自拍| 亚洲美女精品视频| 91精品一区二区三区久久久久久| 五月婷婷久久丁香| 女尊高h男高潮呻吟| 欧美变态tickling挠脚心| 麻豆精品在线看| 日本美女xxx| 国产欧美一区二区精品秋霞影院| 国产成人免费av在线| 日本韩国欧美三级| 亚洲成人一区在线| 国产精品无码永久免费不卡| xf在线a精品一区二区视频网站| 国产在线不卡一卡二卡三卡四卡| 久久噜噜色综合一区二区| 国产精品无遮挡| 91在线看国产| 欧美日韩一级视频| 视频一区在线播放| 久操视频在线观看免费 | 人妻无码中文久久久久专区| 日韩精品资源二区在线| 激情欧美日韩一区二区| 日本精品在线免费观看| 亚洲一区视频在线观看视频| 久久精品老司机| 欧美国产成人精品| 91丨九色丨尤物| 日韩欧美一级特黄在线播放| 国产精品正在播放| 在线观看一区二区精品视频| 日韩精品福利网| av资源在线免费观看| 国产盗摄女厕一区二区三区| 欧美日韩一区国产| 成人激情av网| 亚洲久草在线视频| 91精品人妻一区二区三区四区| 国产男女猛烈无遮挡在线喷水| 亚洲欧美偷拍另类a∨色屁股| 妖精视频一区二区| 久久久久久毛片| 成人免费播放视频| 欧美精品一区二区高清在线观看| 成人黄色777网| 91精品国产综合久久久久久| 国产伦精品一区二区三区在线观看| 在线欧美日韩国产| 久久99精品一区二区三区| 日本韩国一区二区| 蜜臀a∨国产成人精品| 日本天堂中文字幕| 麻豆国产精品视频| 欧洲精品一区二区| 久久精品99国产国产精| 欧洲精品一区二区| 国产乱子轮精品视频| 欧美日韩高清影院| 国产精品亚洲午夜一区二区三区| 欧美日韩精品专区| 成人性生交大片免费看中文| 日韩欧美激情一区| 91丨porny丨中文| 久久精品人人做人人爽人人| 成年女人免费视频| 国产精品久久网站| 蜜桃av免费看| 亚洲成年人影院| 全程偷拍露脸中年夫妇| 久久精品999| 在线成人免费视频| 99久久精品免费| 国产欧美日韩另类视频免费观看| 182在线视频| 亚洲精品伦理在线| 91高清免费观看| 久久成人麻豆午夜电影| 欧美日韩精品免费观看视频| 成人黄色av电影| 色综合欧美在线视频区| 精品在线一区二区| 日韩免费电影一区| 中文字幕人妻一区| 又紧又大又爽精品一区二区| 亚洲欧美精品aaaaaa片| 久久不见久久见中文字幕免费| 欧美日韩国产在线观看| 播五月开心婷婷综合| 国产女人18毛片水真多成人如厕 | 亚洲国产精品久久久男人的天堂| 亚洲天堂黄色片| 国产精品资源网站| 久久久久成人黄色影片| 一卡二卡三卡四卡| 日韩一区精品字幕| 欧美高清www午色夜在线视频| 91在线porny国产在线看| 国产精品网站导航| 国产精品视频在| 精品一区二区免费在线观看| 欧美大白屁股肥臀xxxxxx| 性欧美丰满熟妇xxxx性久久久| 亚洲国产日韩av| 欧美日韩国产bt| 成人在线电影网站| 五月激情综合网| 欧美人与禽zozo性伦| 国产清纯白嫩初高中在线观看性色| 亚洲美女屁股眼交3| 91国模大尺度私拍在线视频| 国v精品久久久网| 欧美激情一二三区| 91精品少妇一区二区三区蜜桃臀| 国产99久久久国产精品潘金| 中文在线免费一区三区高中清不卡| 娇小11一12╳yⅹ╳毛片| 国产福利一区在线观看| 国产欧美一区二区精品秋霞影院 | 麻豆国产精品官网| 久久先锋资源网| 久久一级免费视频| 高清免费成人av| 日韩久久一区二区| 91精品福利视频| 国产精品欧美性爱| 五月天激情小说综合| 欧美成人精品福利| 337人体粉嫩噜噜噜| 国产麻豆午夜三级精品| 中文字幕精品一区二区三区精品| 丰满少妇被猛烈进入一区二区| a美女胸又www黄视频久久| 玉米视频成人免费看| 91麻豆精品久久久久蜜臀| 瑟瑟视频在线观看| 国产精品 日产精品 欧美精品| 国产精品不卡在线| 欧美色网站导航| 国产精品探花一区二区在线观看| 久88久久88久久久| 中文字幕乱码亚洲精品一区| 欧美亚洲日本一区| 成人免费av片| 国产·精品毛片| 亚洲自拍偷拍综合| 欧美videos大乳护士334| 日本黄区免费视频观看| 99久久99久久精品国产片果冻| 亚洲成人动漫在线免费观看| 亚洲精品午夜久久久| 一本大道久久a久久综合| 一区二区三区四区影院| 蜜桃av一区二区| 中文字幕亚洲区| 91超碰这里只有精品国产| 成熟人妻av无码专区| 99热99精品| 蜜臀久久99精品久久久久久9| 中文在线一区二区| 欧美久久一二三四区| 欧美高清视频不卡网| 国产在线观看无码免费视频| 高清不卡在线观看av| 亚洲成av人影院在线观看网| 国产校园另类小说区| 欧美少妇xxx| 亚洲a∨无码无在线观看| 男人女人拔萝卜视频| 男女男精品视频网| |精品福利一区二区三区| 日韩一区和二区| 91成人福利视频| 亚洲自拍偷拍一区二区| www.日韩大片| 美国欧美日韩国产在线播放| 亚洲视频一区二区在线观看| 精品国产免费视频| 欧美亚洲免费在线一区| 欧美xxxooo| 亚洲欧美日本一区| av电影在线观看不卡| 久久99精品一区二区三区| 亚洲国产精品久久人人爱蜜臀|