2024-09-30 18:20:51 发布
网友
我在python应用程序中使用Tkinter菜单小部件实现了一个信息弹出窗口。我在根窗口的画布上有一个文本小部件。我创建了一个以root为父级的菜单小部件。当我检测到鼠标悬停在文本小部件上时,我用menuWidget.post(). 当我从文本小部件获得一个离开事件时,我的意图是通过调用menuWidget.unpost(),只有在单击文本小部件外部的其他位置时,弹出菜单才会消失。在
首先,这是实现信息弹出窗口的一种合理方法吗?有人能告诉我为什么弹出菜单不会消失吗?在
这不是弹出信息的正确方法。在Mac和windows机器上,菜单是本机控件。因此,unpost命令不起作用,因为tk为了获得特定于平台的行为而将控制权让给了系统事件循环。在
unpost
您需要使用的是一个设置了overrideredirect标志的顶层窗口。这使您可以在任何位置显示无边界窗口。这样做的好处是你不局限于简单的文本,你可以把你想要的任何东西放在顶层的另一个文本小部件、画布、按钮等中
overrideredirect
这不是弹出信息的正确方法。在Mac和windows机器上,菜单是本机控件。因此,
unpost
命令不起作用,因为tk为了获得特定于平台的行为而将控制权让给了系统事件循环。在您需要使用的是一个设置了
overrideredirect
标志的顶层窗口。这使您可以在任何位置显示无边界窗口。这样做的好处是你不局限于简单的文本,你可以把你想要的任何东西放在顶层的另一个文本小部件、画布、按钮等中相关问题 更多 >
编程相关推荐