你可以使用wxPython自动隐藏框架/对话框吗?
我想创建一个应用程序有3-4帧(或窗口),其中每个框架附加/定位到屏幕的一侧(如任务栏)。当一个框架处于非活动状态时,我希望它自动隐藏(就像Windows任务栏一样;或者OSX中的停靠栏)。当我将鼠标指针移动到隐藏框架的屏幕边缘位置时,我希望它回到焦点。你可以使用wxPython自动隐藏框架/对话框吗?
该应用程序是用Python写的(使用的wxPython为基本GUI方面的问题)。有谁知道如何在Python中做到这一点?我猜这可能是操作系统的依赖?如果是这样,我想首先关注Windows。
我不这样做GUI编程非常频繁,所以我道歉,如果这是没有意义的。
据我所知,这里没有内置的东西。
当被隐藏的窗口,你希望它完全不可见或可几个像素的边框呈现出?这将是获得鼠标悬停事件的简单方法。否则,您可能不得不使用类似pyHook的东西来获取系统范围的鼠标事件,以了解何时扩展窗口。
事件EVT_ENTER_WINDOW
和EVT_LEAVE_WINDOW
在这里也可能用于知道用户何时进入/离开窗口,以便您可以展开/折叠它。
展开/折叠可以仅通过显示/隐藏窗口或调整它们来完成。标准的窗口功能,没什么奇特的。
顺便说一句,你可能需要使用wx.ClientDisplayRect
揣摩出你的窗口位置。这会给你一个桌面的矩形,不包括任务栏或用户拥有的任何其他工具栏,假设你想避免重叠这些东西。
谢谢,非常有帮助:)。我最初的想法是,几个像素将是可见的,所以我可以利用这样的事件。虽然,我有一种感觉,我的客户可能更喜欢其他方式...... – Jason 2010-02-15 22:21:11
就个人而言,我将结合该FogleBird与wx.Timer提到EVT_ENTER_WINDOW和EVT_LEAVE_WINDOW。然后,只要框架或对话框在x秒内不活动,您就可以调用其Hide()方法。
我认为你可以很容易地创建一个与桌面大小相同的窗口,然后根据鼠标位置循环播放一个不活动变量,然后为4个不活动变量创建一个循环定时器。我亲自设计它,以便当它们从15变为0时,它们改变大小和位置以变成表格并在它们上创建按钮以重新激活。大量的技术工作在这一个,但很容易做到,如果你想出来
我会说@FogleBird相同的东西,所以我只是建议你记住多种显示器的情况,这是很常见的日子,而且往往在您尝试的地方处理不善。我发现这个消息很有用,指向我相关的API等:http://mail.python.org/pipermail/python-list/2006-May/1068555.html – 2010-02-16 01:09:58
谢谢,我一直在寻找这样的事情: ) – Jason 2010-02-16 20:14:16