如何将弹出菜单绑定到Tkin中的标签

2024-04-29 16:42:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我想限制可以触发弹出菜单的区域

我的当前代码允许用户右键单击tkinter窗口中的任意位置触发弹出菜单

from tkinter import *

root = Tk()

w = Label(root, text="Right-click to display menu", width=40, height=20)
w.pack()


popup = Menu(root, tearoff=0)
popup.add_command(label="Next") # , command=next) etc...
popup.add_command(label="Previous")
popup.add_separator()
popup.add_command(label="Home")

def do_popup(event):

    try:
        popup.tk_popup(event.x_root, event.y_root, 0)
    finally:
        popup.grab_release()

w.bind("<Button-3>", do_popup)

b = Button(root, text="Quit", command=root.destroy)
b.pack()

mainloop()

我想弹出菜单被触发时,用户右击标签“右击显示菜单”只


Tags: 代码text用户eventadd区域tkinter菜单
1条回答
网友
1楼 · 发布于 2024-04-29 16:42:44

您的代码完全按照设计工作。您已经创建了一个非常巨大的标签小部件(40个字符宽,20个字符高,或者大约350x325像素,这取决于您的系统字体和分辨率设置)。所以,当你认为你点击了标签外,你没有,因为它占据了整个窗口。你知道吗

要明白我的意思,给你的标签一个独特的背景色。例如:

w = Label(root, text="Right-click to display menu", width=40, height=20, background="pink")

上面的结果显示一个窗口,如下图所示。任何你点击的粉红色的地方都是标签的一部分,因此会显示菜单。你知道吗

enter image description here

相关问题 更多 >