python tkinter treeview右键单击(Button-3)事件以选择树视图中的项目
Posted
技术标签:
【中文标题】python tkinter treeview右键单击(Button-3)事件以选择树视图中的项目【英文标题】:python tkinter treeview right click (Button-3) event to select item in treeview 【发布时间】:2012-08-16 03:41:52 【问题描述】:使用 Python 3.2 和 tkinter。如何使 Button-3(右键单击)选择 Treeview 小部件中鼠标光标悬停的项目?我基本上希望 Button-3 事件以与当前单击左键相同的方式选择项目。
【问题讨论】:
我设法弄明白了。使用 Treeview 的 identify_row 方法并将 y 坐标传递给该方法,它返回鼠标悬停所在行中项目的当前 iid。 欢迎来到 SO。如果可以,请随时将其作为解决方案发布。这样,其他人将能够更轻松地了解如何完成此任务。 【参考方案1】:你回答了你自己的问题一半。刚刚编写并测试了我的代码,所以在此处发布我的解决方案 sn-p 并没有什么坏处。
def init(self):
"""initialise dialog"""
# Button-3 is right click on windows
self.tree.bind("<Button-3>", self.popup)
def popup(self, event):
"""action in event of button 3 on tree view"""
# select row under mouse
iid = self.tree.identify_row(event.y)
if iid:
# mouse pointer over item
self.tree.selection_set(iid)
self.contextMenu.post(event.x_root, event.y_root)
else:
# mouse pointer not over item
# occurs when items do not fill frame
# no action required
pass
【讨论】:
以上是关于python tkinter treeview右键单击(Button-3)事件以选择树视图中的项目的主要内容,如果未能解决你的问题,请参考以下文章
Python如何改变tkinter.ttk.Treeview表格组件的每行的行高?
python中tkinter treeview如何获取选中的条目