如何以编程方式将 webkit PyQt 窗口作为墙纸放在桌面上?
Posted
技术标签:
【中文标题】如何以编程方式将 webkit PyQt 窗口作为墙纸放在桌面上?【英文标题】:How can I put a webkit PyQt window as wallpaper on my desktop programmatically? 【发布时间】:2012-06-13 21:03:24 【问题描述】:我尝试将谷歌日历放在 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【问题讨论】:
在 kde 中你可以使用KWin Rules Window Attributes 将窗口保持在其他窗口下方 【参考方案1】:您可以截取页面截图,将其保存在某处,然后启动更改背景的命令。
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")
然后使用 subprocess 模块从终端调用更改壁纸的命令。谷歌搜索结果为this 用于 Gnome ubuntu。如果你愿意,我相信你也可以为 KDE 找到一个类似的。
【讨论】:
谢谢你,这很有趣,但不适合我尝试的,我想要一个 webkit 壁纸。这样,日历就可以编辑了。以上是关于如何以编程方式将 webkit PyQt 窗口作为墙纸放在桌面上?的主要内容,如果未能解决你的问题,请参考以下文章