你能用wxPython自动隐藏帧/对话框吗?

时间:2010-02-15 19:11:23

标签: python animation wxpython mouseevent

我想创建一个具有3-4帧(或窗口)的应用程序,其中每个帧都附加/定位到屏幕的一侧(如任务栏)。当一个帧处于非活动状态时,我希望它能自动隐藏(就像Windows任务栏那样;或者OSX中的停靠站)。当我将鼠标指针移动到屏幕边缘隐藏框架的位置时,我希望它能够重新聚焦。

应用程序是用Python编写的(使用wxPython来实现基本的GUI方面)。有谁知道如何在Python中这样做?我猜它可能依赖于操作系统?如果是这样,我想首先关注Windows。

我不经常进行GUI编程,所以如果这根本没有意义,我很抱歉。

3 个答案:

答案 0 :(得分:1)

据我所知,没有内置任何内容。

当窗口被隐藏时,您是否希望它完全不可见或者是否可以显示几个像素的边框?这将是获得鼠标悬停事件的简单方法。否则,您可能必须使用类似pyHook的内容来获取系统范围的鼠标事件,以了解何时展开窗口。

事件EVT_ENTER_WINDOWEVT_LEAVE_WINDOW在此处可能也很有用,可以了解用户何时进入/离开窗口,以便您可以展开/折叠它。

扩展/折叠只需通过显示/隐藏窗口或调整窗口大小即可完成。标准窗口功能,没什么特别的。

顺便说一句,您可能希望使用wx.ClientDisplayRect来确定窗口的位置。这将为您提供一个桌面矩形,它不包括任务栏或用户拥有的任何其他工具栏,假设您希望避免与这些事物重叠。

答案 1 :(得分:0)

就个人而言,我会将FogleBird提到的EVT_ENTER_WINDOW和EVT_LEAVE_WINDOW与wx.Timer结合起来。然后,只要帧或对话框在x秒内处于非活动状态,您就可以调用其Hide()方法。

答案 2 :(得分:0)

我认为您可以轻松地创建一个与桌面大小相同的窗口,然后根据鼠标位置循环显示一个非活动变量,然后为4个不活动变量循环关闭计时器。我个人设计它,当它们从15到0时,它们会改变大小和位置以变成表格并在它们上创建一个按钮来重新激活。关于这个的很多技术工作,但如果你想出来就很容易做到