2009-05-16 26 views
1

使用Ruby或Python,是否有人知道如何在屏幕上绘制,覆盖任何其他窗口?有点类似,按一个键,程序会在屏幕上显示当前的天气或股票报价(使用整个屏幕作为画布),然后再次按键,一切恢复到与以前相同? (如Mac OS X的仪表板)。是否有人知道如何使用Ruby或Python在屏幕上显示内容(覆盖任何窗口)?

+0

哪个操作系统? Mac OS X或其他? – 2009-05-16 17:42:43

回答

4

您可以使用系统仪表板(桌面小部件或任何称为)的API。为了做到这一点,你需要绑定到Python或Ruby。 或者,您可以使用一些通用的gui工具包或应用程序框架,并创建一个透明背景的无框窗口。然后,您需要确保所选工具包支持您所需平台上的“永远在线”选项。

2

如果您使用的是windows,则可以使用win32api (例如,Windows)直接绘制到桌面dc(设备上下文)。只是为了好玩试试这个:)

>>> import win32ui 
>>> import win32gui 
>>> hdc = win32ui.CreateDCFromHandle(win32gui.GetDC(0)) 
>>> hdc.DrawText("Wow it works", (100, 100, 200, 200)) 
>>> hdc.LineTo(500,500) 

但不会是非常有用的,因为不可擦除

最好的办法是使用具有切口区域(ATLEAST一个透明窗口或窗口上的窗户是可能的) 或者即使你不能在一些系统上绘制透明图片,你可以抓住当前的屏幕并将其显示为你的背景窗口,它会产生透明效果

+0

“”“你可以抓住当前屏幕”“” - 那么你怎么知道它下面的其他窗口是否会移动,这在逻辑上位于我们的窗口下方,因此系统将不会调用重画? – Maleev 2009-05-17 10:17:49

1

我会推荐PyGame。

相关问题