Tkinter 菜单小部件:隐藏菜单的命令
Tkinter menu widget: command to hide menu
我的问题如下
我有一个带有一些菜单的应用程序,根据执行的任务,可以配置它的选项,即激活或停用一些菜单选项以防止用户调用会导致不希望的行为的东西应用程序。
问题是用户点击菜单并保持打开的可能性,而应用程序配置de菜单。事实上,菜单已更改,但即使在鼠标离开菜单后,菜单仍会冻结并仍然打开。但是,我注意到如果我用鼠标在应用程序外部单击,菜单会有效关闭,一切都会恢复正常,但用户可能不会意识到这一点并且可能会卡住。无论如何,这不是一个有趣的行为。我认为这是菜单小部件的错误,但我不确定。
我无法禁用所有菜单,因为有些选项实际上应该可用。一个解决方案是在配置他之后隐藏 de 菜单的命令,避免这种情况。我尝试使用 "unpost" 方法,但没有任何反应。
是否有这种可能性或任何解决方法可以解决我的问题?
我留下上述菜单的一些图片来说明我的问题:
正常
禁用一些选项
"bug"情况
幸运的是,我想我找到了这种不当行为的根源。配置菜单后,会显示另一个 window(自定义警告消息)。为了强制用户注意该消息,将焦点赋予它,并且应用程序被迫等待(使用 wait_window" 方法)直到用户关闭它。"wait_window" 导致这个问题,因为它不允许 mainloop 隐藏菜单,因为它正在等待警告 window 的关闭,但是如果不先隐藏菜单,就不可能关闭 window。是一种"priority conflict"的情况。
解决方案不是使用该方法,菜单会按要求关闭。
我认为这可能对以后遇到这种麻烦的人有用
我的问题如下
我有一个带有一些菜单的应用程序,根据执行的任务,可以配置它的选项,即激活或停用一些菜单选项以防止用户调用会导致不希望的行为的东西应用程序。
问题是用户点击菜单并保持打开的可能性,而应用程序配置de菜单。事实上,菜单已更改,但即使在鼠标离开菜单后,菜单仍会冻结并仍然打开。但是,我注意到如果我用鼠标在应用程序外部单击,菜单会有效关闭,一切都会恢复正常,但用户可能不会意识到这一点并且可能会卡住。无论如何,这不是一个有趣的行为。我认为这是菜单小部件的错误,但我不确定。
我无法禁用所有菜单,因为有些选项实际上应该可用。一个解决方案是在配置他之后隐藏 de 菜单的命令,避免这种情况。我尝试使用 "unpost" 方法,但没有任何反应。
是否有这种可能性或任何解决方法可以解决我的问题?
我留下上述菜单的一些图片来说明我的问题:
正常
禁用一些选项
"bug"情况
幸运的是,我想我找到了这种不当行为的根源。配置菜单后,会显示另一个 window(自定义警告消息)。为了强制用户注意该消息,将焦点赋予它,并且应用程序被迫等待(使用 wait_window" 方法)直到用户关闭它。"wait_window" 导致这个问题,因为它不允许 mainloop 隐藏菜单,因为它正在等待警告 window 的关闭,但是如果不先隐藏菜单,就不可能关闭 window。是一种"priority conflict"的情况。
解决方案不是使用该方法,菜单会按要求关闭。
我认为这可能对以后遇到这种麻烦的人有用