【问题标题】:Animate Windows Wallpaper with QT使用 QT 为 Windows 壁纸制作动画
【发布时间】:2011-11-27 17:56:44
【问题描述】:

我想为 Windows 制作动画壁纸。到目前为止,我只对 Mac OS X 编程有经验,而且我是 Windows 新手。所以我决定与 QT 合作,因为那里似乎有更多的帮助。

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

但是在 QT 中有没有办法改变窗口的级别,使其出现在窗口壁纸上方但在图标后面?

编辑:

如果找到一个简单的解决方案就可以了。

在对 kusg1 的提示进行一些测试后,我发现了透明窗口鼠标事件何时仍会转到桌面。

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

所以时钟文本不在图标后面,但我认为这没问题。

【问题讨论】:

  • 基本上你是在重新创建Windows DreamScene ?使用的 DLL 是 Vista 可以在 Windows 7 中注册以启用相同的功能。
  • 不完全是,它要使用网页作为背景。

标签: windows qt


【解决方案1】:

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

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

  1. 在启动时,它将桌面背景作为像素图抓取并与动画内容进行叠加(这需要让桌面在简单的场景中没有壁纸)。

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

更新:

一些实现的指针:

  • 管理桌面图标,有一篇好文章here! (也可以从 SO 中找到)。
  • Qt example and demos有一个获取桌面快照的例子,sn-p是:QPixmap::grabWindow(QApplication::desktop()->winId());

【讨论】:

  • 这听起来很有希望,是否有任何提示或示例我如何实现这些任务?
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多