我可以看到如何剪切和粘贴树中的节点或使用按钮或键绑定上下移动节点。有没有一种方法可以在树视图中实现拖放节点?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. tkinter listbox拖放python
- 6. 在TreeView中拖放节点
- 7. 更新TreeView dataSource的拖放?
- 8. Silverlight工具包TreeView拖放
- 9. 拖放小部件tkinter
- 10. Tkinter Treeview Column Sorting
- 11. 在TreeView和Textbox之间拖放
- 12. 如何在ASP.NET TreeView中拖放?
- 13. 拖放问题,在一个TreeView的Qt
- 14. Treeview拖放没有目标节点
- 15. 支持拖放的ASP.NET Treeview控件?
- 16. .NET 2.0 C#Treeview在TreeNode中拖/放
- 17. 在uwp中的treeview之间拖放
- 18. WPF TreeView使用预览拖放
- 19. 返回Tkinter Treeview iid
- 20. Python tkinter treeview列大小
- 21. 将拖放文件从资源管理器拖到Telerik WPF treeview
- 22. 在Tkinter中隐藏TreeView列
- 23. 拖放在WPF
- 24. 拖动TreeView的节点
- 25. Tkinter Treeview网格对齐问题
- 26. 移植WinForms拖放到WPF的拖放
- 27. 指南定制拖放TreeView控件(用jQuery)
- 28. 验证C#中TreeView的拖/放操作的最佳方法
- 29. WPF和Caliburn:带有拖放和下拉菜单的TreeView
- 30. 在TreeView的非可点击区域拖放TreeViewItems [WPF]
“bUp”的用途是什么?我删除了它,它似乎以相同的方式工作。编辑:我已经删除除了bMove以外的所有东西,它似乎仍然工作。 – Sithling 2017-05-24 10:34:21