0
,具有一定的可膨脹子樹,並選擇更改的偵聽器:防止TTK ::從樹狀選擇上展開/摺疊所以我有一個簡單的樹狀子樹
ttk::treeview .tree
pack .tree -expand 1 -fill both
.tree tag configure disabled -foreground grey
.tree tag bind all <<TreeviewSelect>> "puts selected"
set node [.tree insert {} end -text "Node 0" -tags all]
.tree insert $node end -text "A" -tags "all"
.tree insert $node end -text "B" -tags "all"
.tree insert $node end -text "C" -tags "all"
set node [.tree insert {} end -text "Node 1" -tags all -open 1]
.tree insert $node end -text "X" -tags "all"
.tree insert $node end -text "Y" -tags "all"
.tree insert $node end -text "Z" -tags "all"
看來的Tcl/Tk會如果用戶嘗試展開/摺疊子樹(通過單擊節點元素左側的擴展器圖標),自動(除)選擇子樹節點(「節點0」和「節點1」),並調用偵聽器。
有沒有什麼辦法可以在不同時選擇項目的情況下允許子樹的擴展/縮放?我的開發平臺是Tcl/Tk-8.6(在Debian/stretch上),但任何解決方案都應該跨平臺工作。
雖然我不太明白,爲什麼如果oldsel不是空的,跳過跳過(因爲如果當前有* no *選擇,這仍然會出現問題)。當然,您可以將'TreeviewOpen'和'TreeviewClose'綁定到同一個處理程序中... –
第一次不能將選擇設置爲{}(不存在,skip爲false)。當然,如果將'oldsel'初始化爲默認選擇,則不需要該測試。 –