如果我想實現右鍵點選Treeview中的item應該怎麼寫代碼? (pyhon編寫
时间: 2023-12-14 09:40:18 浏览: 41
你可以使用 `bind` 方法来绑定鼠标右键单击事件,并在事件处理程序中处理右键单击事件。
以下是一个示例代码:
```python
import tkinter as tk
def show_menu(event):
# 在事件发生的位置显示右键菜单
menu.post(event.x_root, event.y_root)
root = tk.Tk()
# 创建 Treeview 控件
tree = tk.ttk.Treeview(root)
tree.pack()
# 添加一些节点
tree.insert("", "0", "item1", text="Item 1")
tree.insert("", "1", "item2", text="Item 2")
tree.insert("", "end", "item3", text="Item 3")
# 创建一个右键菜单
menu = tk.Menu(root, tearoff=0)
menu.add_command(label="菜单项1")
menu.add_command(label="菜单项2")
# 绑定右键单击事件
tree.bind("<Button-3>", show_menu)
root.mainloop()
```
在上面的示例中,我们创建了一个 Treeview 控件,并向其添加了一些节点。然后,我们创建了一个右键菜单,并使用 `bind` 方法将 Treeview 控件的右键单击事件与 `show_menu` 函数绑定。在 `show_menu` 函数中,我们使用 `post` 方法在事件发生的位置显示右键菜单。
注意:`post` 方法的参数是菜单应该出现的屏幕坐标,而不是窗口坐标。因此,我们需要使用 `event.x_root` 和 `event.y_root` 属性将窗口坐标转换为屏幕坐标。
阅读全文