ttk 樹檢視部件說明
部件可以包含多個列位, 第一列稱為圖示列, 用來顯示收起或展開的圖示, 其他列可以用來顯示其他的資訊.
專案 | 說明 |
---|---|
item | 在樹結構中, 每一個專案 |
iid | 每一個專案都有一個各自單獨的識別碼 |
child | 子專案 |
parent | 父專案, 最頂層為空字串 |
ancestor | 父項以上的所有專案 |
visible | 最頂層的專案, 永遠可見, 只有父項被展開, 子項以下的專案才可能看得見 |
descendant | 子項以下所有的專案 |
tag | 每一個專案可以對應到一個或多個的標籤, 使用標籤來對該群體的專案作一些設定或動作等 |
ttk 樹檢視部件的建立及其選項
w = ttk.Treeview(parent, option=value, ...)
選項 | 說明 |
---|---|
class_ | 部件分類名稱,建立後不能改變 |
columns | 序列的識別碼字串, 該序列不包含圖示列的識別碼, 第一列圖示列的識別碼永遠為 "#0" |
cursor | 滑鼠懸停在按鈕上時顯示的滑鼠, 內定為空字串, 繼承父部件的選項 |
displaycolumns | 指定各列顯示與否及其順序, "#all" 代表全部, 或整數的列表, 識別碼列表, 各列的內容必須按此順序提供 |
height | 部件的行數 |
padding | 部件內部子部件的外部間隔, 可以是單一尺寸, 或最多 4-tuple, 順序為 (left, top, right, bottom), 省略部份, 由其他代替, 如 a=(a,a, a,a), (a,b)=(a,b,a,b), (a,b,c)=(a,c,b,c), (a,b,c,d) |
select | 專案被選擇的模式, 'browse' (單選) /'extended' (可多選) / 'none' (不可選) |
show | 內定為顯標題列, 'tree' 為不顯示 |
style | 生成部件的樣式 |
takefocus | 鍵盤聚焦, '' (內定) 同 True, False 或 True |
ttk 樹檢視部件的方法
方法 | 說明 |
---|---|
bbox(item, column=None) | 專案列所在的左上角座標及尺寸, 返回 (x, y, width, height), 如果專案不可見, 返回空字串; 如果沒給 column 引數, 返回的是整行的座標及尺寸 |
column(cid, option=None, **kw) | 設定某列的選項, 使用kw, 查詢使用 option; 如果沒給 option 及 kw, 返回字典值; 選項有 anchor - 該列的定位,內定為 'w' id - 列名, 唯讀 minwidth - 最小列寛點素, 預設值為 20 stretch - 列寛可否跟著部件尺寸變化時調整, 預設值為 1 width - 預設列寛點素, 內定為 200 |
delete(*items) | 刪除專案, 包含其所有的子項 |
detach(*items) | 從可見的列表中移除, 專案仍然存在, 包含其所有的子項, 使用 move 返法還原 |
exists(iid) | 部件中是否包含該專案, 不管是否可見 |
focus([iid]) | 設定或返回聚焦, 無聚焦專案, 返回空字串 |
get_children([item]) | 返回子專案 tuple, 無 item 引數, 則為最頂層 |
heading(cid, option=None, **kw) | 設定標題列的選項, 使用 kw, 查詢使用option; 如果沒給option 及 kw, 返回字典值; 選項有 anchor - 定位, 內定為'w' command - 點選時回撥函式 image - 圖片 text - 文字字串 |
identify_column(x) | 返回 x 座標對應的列 '#n', 不論圖示列是否可見, n:0 為圖示列, 其他列都是從 1 開始排起 |
identify_element(x, y) | 在座標 (x, y) 處的元件名, 無則為空字串 |
identify_region(x, y)) | 在座標(x, y) 處部位的字串 'nothing' 'heading' (標題列) 'separator' (標題列分隔處) 'tree' (圖示列) 'cell' (其他專案列) |
identify_row(y) | 返回 y 座標對應的行的 iid, 無則返回空字串 |
index(iid) | 返回專案 iid 相對於父項的索引 |
set_children(item, *newChildren) | 設定序列的專案為 item 的子項, 原有的子項不保留 |
insert(parent, index, iid=None, **kw) | 父項 parent 下插入子項, 最頂層為空字串, index 為插入處的索引, 最後一項使用 'end'; 使用 iid 作為該項的識別碼, 無則自動設定並返回. kw 選項有 image - 圖示列圖示右邊的圖片 open - 專案是否開啟, True 子專案會可見 tags - 指定相關的標籤,單一或序列的字串 text - 圖示列中圖示/圖片右邊的字串 values - 各列的資料項, 不夠長度, 其他為空白, 太多長度會被忽略 |
item(iid[, option[, **kw]]) | 設定返回專案的選項, 設定使用 kw, 返回使用 option, 都無則返回所有選項字典值 |
move(iid, parent, index) | 移動專案 iid 到某一父項 parent 的某一個索引處 |
next(iid) | 如果iid 專案不是最頂層專案, 返回其父項的下一個子項 iid, 無則返回空字串; 如果是最頂層專案, 則返回下一個最頂層專案的iid, 無則返回空字串 |
parent(iid) | 返回父項的 iid, 如果已是最頂層專案, 則返回空字串 |
prev(iid) | 如果iid 專案不是最頂層專案, 返回其父項的前一個子項iid, 無則返回空字串; 如果是最頂層專案, 則返回前一個最頂層專案的iid, 無則返回空字串 |
see(iid) | 使專案 iid 可見, 其子項以全都展開 |
selection_add(items) | 於選擇專案中, 新增單一或序列的專案 |
selection_remove(items) | 於選擇專案中, 去掉單一或序列的專案 |
selection_set(items) | 設定單一或序列的專案為選擇專案 |
selection_toggle(items) | 變更單一或序列的專案的選擇狀態 |
set(iid, column=None, value=None) | 設定或返回專案的列值, 只有 iid 引數時, 返回字典值 |
tag_bind(tagName, sequence=None, callback=None) | 繫結標籤 tagName 的事件 sequence 到回撥函式 func; 只有前兩個引數, 則返回事件相關的函式; 只有第一個引數, 則返回所有相關函式的列表 |
tag_configure(tagName, option=None, **kw) | 設定或查詢標籤的專案的選項, 設定使用 kw, 查詢使用 option, 如果兩者都無提供, 會返回選項的字典值; kw 選項有 'background' - 背景顏色 'font' - 文字字型 'foreground' - 前景顏色 'image' - 圖片 |
tag_has(tagName[, iid]) | 返回標籤所包含的所有專案的列表, 如果另提供 iid 引數, 返回標籤中是否有 iid 專案 |
xview(*args) | 供水平滾動條 scrollbar 選項 command 使用 |
yview(*args) | 供垂直滾動條 scrollbar 選項 command 使用 |
ttk 樹檢視部件的虛擬事件
某些部件的狀態改變時, 會產生一個虛擬事件
事件 | 說明 |
---|---|
"<<TreeviewSelect>>" | 選擇內容改變 |
"<<TreeviewOpen>>" | 專案被展開時 |
"<<TreeviewClose>>" | 專案被收合時 |
待續
本作品採用《CC 協議》,轉載必須註明作者和本文連結