如何以编程方式将webkit PyQt窗口作为壁纸放在桌面上?

时间:2012-06-13 21:03:24

标签: linux pyqt4 desktop-application xorg spynner

我尝试将google日历放在webkit窗口中作为壁纸。

python工作脚本看起来像

#!/usr/bin/python2 -u
# -*- coding: iso8859-15 -*-

display_UI = True
email = "xxxx@gmail.com"
passwd = "xxxxxxxx"
useragent = "Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"

import spynner

browser = spynner.Browser(
        debug_level=spynner.WARNING,
        user_agent = useragent
)

browser.create_webview(display_UI)
browser.webview.setWindowTitle('Gcalendar')
browser.webview.showMaximized()

browser.load("https://accounts.google.com/ServiceLogin?service=cl&passive=1209600&continue=https://www.google.com/calendar/render&followup=http://www.google.com/calendar&scc=1")
browser.fill("input[name=Email]", email)
browser.fill("input[name=Passwd]", passwd)
browser.click("input[name=signIn]")
browser.wait_load()
browser.load("https://www.google.com/calendar/render?pli=1")
browser.wait_load()

# vim:ts=4:sw=4

我现在要做的是,是以编程方式将此窗口设为壁纸:

  • 跳过任务栏
  • 跳过寻呼机
  • 全屏(使用spynner模块完成)
  • 如果我隐藏所有应用程序,窗口应该像任何壁纸一样。

我尝试了什么没有成功

  • kde应用程序名称的高级设置
  • xwinwrap

1 个答案:

答案 0 :(得分:2)

您可以截取页面的屏幕截图,将其保存在某处,然后启动更改背景的命令。

image = spynner.QImage(browser.webpage.viewportSize(), spynner.QImage.Format_ARGB32)
painter = spynner.QPainter(image)
browser.webpage.mainFrame().render(painter)
painter.end()
image.save("/path/to/img/gcscreen.png")

然后使用子进程模块调用从终端更改壁纸的命令。谷歌搜索结果为this,用于Gnome ubuntu。如果你愿意的话,我相信你也可以找到类似的KDE。