使用QT动画Windows壁纸

时间:2011-11-27 17:56:45

标签: windows qt

我想为Windows制作动画壁纸。到目前为止,我只对Mac OS X编程有所了解,而且我是Windows的新手。所以我决定使用QT,因为它似乎有更多的帮助。

到目前为止,我已经在qt的无边框窗口中创建了应用程序。它安静得很好。

但QT中是否有一种方法可以改变窗口的高度,使其显示在窗口壁纸上方,但在图标后面?

修改

好的,如果找到一个简单的解决方案。

在使用kusg1的提示进行一些测试之后,我发现有一个透明的窗口鼠标事件仍然会进入桌面。

我真的希望这个网站有壁纸:Ticketack。 - 所以我创建了一个无框窗口,它保持在底部并具有透明背景并显示文本。除此之外,我可以直接更改Windows壁纸以获得时钟的背景。

所以时钟文字不在图标后面,但我认为这样可以。

2 个答案:

答案 0 :(得分:1)

只是一些想法:使用windows标志作为 Qt :: Window | Qt :: FramelessWindowHint + Windows保持底部提示,并使用动画内容设置小部件的内容(合适的候选者是使用QGraphicsView)。

小部件需要两个主要任务:

  1. 启动后,它会将桌面背景作为像素图抓取并与动画内容叠加(这需要让桌面在简单场景下不需要壁纸)。

  2. 如果用户想要点击桌面上的图标,窗口小部件需要捕获鼠标和焦点事件并回显到实际的窗口命令。

  3. <强>更新

    实施的一些指示:

    • 为了管理桌面图标,有一篇好文章here! (也来自SO)。
    • Qt示例和演示有一个关于拍摄桌面快照的示例,该片段是:QPixmap :: grabWindow(QApplication :: desktop() - &gt; winId());

答案 1 :(得分:0)

回答你的问题:不,没有。

但是,您可以尝试使用Windows API:How to draw directly on the Windows desktop, C#?