我可以看到如何剪切和粘貼樹中的節點或使用按鈕或鍵綁定上下移動節點。有沒有一種方法可以在樹視圖中實現拖放節點?tkinter treeview - 拖放?
1
A
回答
2
你必須自己設置它,但它絕對有可能。您將只需要作出適當的綁定<ButtonPress-1>
(識別物品被拖動),<ButtonRelease-1>
(實現下降),以及<B1-Motion>
(拖曳期間提供反饋)
10
下面是處理左鍵點擊一些工作示例代碼和移位,左擊:
import Tkinter as tk
import ttk
def bDown_Shift(event):
tv = event.widget
select = [tv.index(s) for s in tv.selection()]
select.append(tv.index(tv.identify_row(event.y)))
select.sort()
for i in range(select[0],select[-1]+1,1):
tv.selection_add(tv.get_children()[i])
def bDown(event):
tv = event.widget
if tv.identify_row(event.y) not in tv.selection():
tv.selection_set(tv.identify_row(event.y))
def bUp(event):
tv = event.widget
if tv.identify_row(event.y) in tv.selection():
tv.selection_set(tv.identify_row(event.y))
def bUp_Shift(event):
pass
def bMove(event):
tv = event.widget
moveto = tv.index(tv.identify_row(event.y))
for s in tv.selection():
tv.move(s, '', moveto)
root = tk.Tk()
tree = ttk.Treeview(columns=("col1","col2"),
displaycolumns="col2",
selectmode='none')
# insert some items into the tree
for i in range(10):
tree.insert('', 'end',iid='line%i' % i, text='line:%s' % i, values=('', i))
tree.grid()
tree.bind("<ButtonPress-1>",bDown)
tree.bind("<ButtonRelease-1>",bUp, add='+')
tree.bind("<B1-Motion>",bMove, add='+')
tree.bind("<Shift-ButtonPress-1>",bDown_Shift, add='+')
tree.bind("<Shift-ButtonRelease-1>",bUp_Shift, add='+')
root.mainloop()
2
無法離開的解決方案發表意見所以這裏加了我50: 來解決問題通過多層次樹拖動上下,你需要指定父ID移動時,如每行下面:
tv.move(s,tv.ide ntify_row(event.y),moveto)
這可能對某人有用......
+0
一旦你達到50分,你將可以發表評論。這樣做的目的是讓釣魚者遠離網站,並確保新用戶遵守答覆指南。你的答案看起來不錯。 – 2017-01-11 20:07:09
相關問題
- 1. Tkinter拖放
- 2. WPF Treeview HierarchicalDataTemplate拖放
- 3. 在Treeview中拖放
- 4. 在Tkinter中拖放?
- 5. Silverlight工具包TreeView拖放
- 6. 在TreeView中拖放節點
- 7. 拖放小部件tkinter
- 8. Tkinter Treeview Column Sorting
- 9. WPF TreeView使用預覽拖放
- 10. .NET 2.0 C#Treeview在TreeNode中拖/放
- 11. 如何在ASP.NET TreeView中拖放?
- 12. 拖放問題,在一個TreeView的Qt
- 13. 在uwp中的treeview之間拖放
- 14. 支持拖放的ASP.NET Treeview控件?
- 15. Python tkinter treeview列大小
- 16. 將拖放文件從資源管理器拖到Telerik WPF treeview
- 17. 拖放在WPF
- 18. Tkinter Treeview網格對齊問題
- 19. 拖放大小拖放區
- 20. Flex拖放和拖放
- 21. 驗證C#中TreeView的拖/放操作的最佳方法
- 22. 在TreeView的非可點擊區域拖放TreeViewItems [WPF]
- 23. TreeView拖放幫助 - _無效FORMATETC結構_異常
- 24. 修改滾動速度,TreeView拖放在C#
- 25. 指南定製拖放TreeView控件(用jQuery)
- 26. WPF將文件拖放到TreeView從Windows資源管理器
- 27. 在treeview中拖放,在節點之間插入
- 28. Kendo UI樹視圖拖放獲取目標(丟棄)treeview對象
- 29. 拖放多個子節點
- 30. C#拖放功能
「bUp」的用途是什麼?我刪除了它,它似乎以相同的方式工作。編輯:我已經刪除除了bMove以外的所有東西,它似乎仍然工作。 – Sithling 2017-05-24 10:34:21