Python PopupMenu点击一次后禁用
时间: 2025-02-12 09:27:51 浏览: 24
在Python的Tkinter库中,如果你想要创建一个PopUp Menu,允许用户点击一次后就禁用它,你可以这样做:
```python
from tkinter import *
from tkinter import messagebox
def show_popup(event):
popup = OptionMenu(root, var, *options)
popup.config(state=DISABLED) # 禁用选择菜单
popup.bind('<ButtonRelease-1>', lambda e: popup.config(state=NORMAL)) # 绑定单击事件恢复状态
popup.place(x=event.x_root, y=event.y_root) # 将弹出菜单放置在鼠标位置
popup.grab_set() # 保持焦点直到窗口失去焦点或按下其他键
root.wait_variable(var) # 直到用户选择选项
popup.destroy()
root = Tk()
var = StringVar() # 创建一个变量用于保存选中的值
options = ('Option 1', 'Option 2', 'Option 3') # 定义菜单项
# 添加一个按钮,当点击时触发popup显示
button = Button(root, text="Show Popup", command=lambda: show_popup(None))
button.pack()
root.mainloop()
```
在这个例子中,`show_popup`函数会在用户点击时打开菜单,并立即将其设置为不可用。然后,通过绑定`<ButtonRelease-1>`事件,当用户释放鼠标按钮时,菜单会恢复成可交互状态。这样就实现了点击一次后的禁用效果。
阅读全文
相关推荐


















