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如何获取选中的条目

Python Tkinter Treeview使用可变SQL查询固定宽度

插入带标签的行时出现Tkinter Treeview问题

如何使用 Tkinter 清除整个 Treeview

tkinter Treeview 小部件插入数据