python - tkinter optionmenu 关闭事件
问题描述
我正在尝试在 tkinter 中显示选项菜单项的工具提示。我已经想出了如何做到这一点。我留下的问题是关闭工具提示(顶层)窗口。当用户选择一个选项或在选项菜单之外单击(关闭选项菜单的菜单)时,我想这样做。进入和离开事件似乎没有起到作用。任何帮助,将不胜感激!
编辑:我已经添加了一些关于我尝试过的代码。每当我将鼠标悬停在菜单项 1(这是我想要的)上时,就会发生“测试”打印,但我想在用户打开或关闭整个菜单时触发进入和离开事件。我尝试将它们绑定到选项菜单,但它不可靠,有时会在不应该触发时触发离开事件。
from tkinter import Tk, Frame, BOTH, Menu, Label, SUNKEN, X, BOTTOM
import tkinter as tk
class Application(Frame):
def __init__(self, parent):
Frame.__init__(self, parent, background = "white")
self.parent = parent
vals = ["1","2","3"]
var = tk.StringVar()
var.set("1")
option = tk.OptionMenu(root,var,*vals)
option.pack()
t = option.children["menu"]
tk.Menu
#Do I need to unbind
#t.bind("<<MenuSelect>>", self.test_func)
t.bind("<<MenuSelect>>", self.test_func)
t.bind("<Enter>",self.enter_func)
t.bind("<Leave>",self.leave_func)
def test_func(self,event = None):
if self.parent.call(event.widget,"index","active") == 0:
print("test")
def enter_func(self,event=None):
print("entered")
def leave_func(self,event=None):
print("left")
root = tk.Tk()
Application(root)
root.mainloop()
我发现关闭工具提示的一种方法(示例中未显示)是跟踪与选项菜单关联的变量,并在它更改时终止顶部窗口。但是,如果用户打开菜单,将鼠标悬停在选项上,然后在菜单项之外单击,则顶部窗口工具提示将保留,因为菜单项从未更改。
这个问题与这个问题非常相似
解决方案
推荐阅读
- wordpress - mod重写 - WP
- excel - 将数据复制并粘贴到列中时不会触发 Vba Worksheet_Change 事件,但可以手动单击单元格
- timer - 我正在尝试在同一个 SwiftUI 视图中使用两个计时器
- java - 检查 AWS 作业的状态
- python - 为什么即使我输入了与列表中的字符串匹配的正确字符串,if-else 语句中的条件也永远不会满足?
- twitter-bootstrap - Bootstrap 4 col 排序导致错误的累积布局移位分数
- php - 如何通过 PHP 重启 centos 服务器
- java - 如何在 micronaut 中注入嵌套(内部)非静态类?
- reactjs - 将常规引导代码转换为 React Bootstrap 样式的组件
- ant-media-server - 流式传输到域的根目录而不是 /LiveApp