【问题标题】:'hover over' popup with TkinterTkinter 的“悬停”弹出窗口
【发布时间】:2010-12-01 20:09:51
【问题描述】:

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

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

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

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

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

    【讨论】:

    • 明白了,布莱恩。编码并使用 TopLevel。然而,错过了投射阴影效果。
    猜你喜欢
    • 1970-01-01
    • 2022-12-19
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多