用Tkin弹出“悬停”

2024-09-30 18:20:51 发布

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

我在python应用程序中使用Tkinter菜单小部件实现了一个信息弹出窗口。我在根窗口的画布上有一个文本小部件。我创建了一个以root为父级的菜单小部件。当我检测到鼠标悬停在文本小部件上时,我用menuWidget.post(). 当我从文本小部件获得一个离开事件时,我的意图是通过调用menuWidget.unpost(),只有在单击文本小部件外部的其他位置时,弹出菜单才会消失。在

首先,这是实现信息弹出窗口的一种合理方法吗?有人能告诉我为什么弹出菜单不会消失吗?在


Tags: 文本信息应用程序部件tkinter画布菜单事件
1条回答
网友
1楼 · 发布于 2024-09-30 18:20:51

这不是弹出信息的正确方法。在Mac和windows机器上,菜单是本机控件。因此,unpost命令不起作用,因为tk为了获得特定于平台的行为而将控制权让给了系统事件循环。在

您需要使用的是一个设置了overrideredirect标志的顶层窗口。这使您可以在任何位置显示无边界窗口。这样做的好处是你不局限于简单的文本,你可以把你想要的任何东西放在顶层的另一个文本小部件、画布、按钮等中

相关问题 更多 >