首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >'QPixmap‘没有属性'grabWindow’

'QPixmap‘没有属性'grabWindow’
EN

Stack Overflow用户
提问于 2015-03-25 16:02:55
回答 3查看 5.4K关注 0票数 3

我正在尝试将我的代码从PyQt4转换为PyQt5,但是我得到了错误。

代码语言:javascript
复制
import sys
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication
from datetime import datetime

date = datetime.now()
filename = date.strftime('%Y-%m-%d_%H-%M-%S.jpg')
app = QApplication(sys.argv)
QPixmap.grabWindow(QApplication.desktop().winId()).save(filename, 'jpg')


Traceback (most recent call last):
  File "C:\Python34\Projects\name.py", line 9, in <module>
    QPixmap.grabWindow(QApplication.desktop().winId()).save(filename, 'jpg')
AttributeError: type object 'QPixmap' has no attribute 'grabWindow'
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-25 16:11:48

您应该使用QScreen::grabWindow()代替。QPixmap::grabWindow() 在QT5.0中不建议使用,因为

可能有一些平台插件,其中窗口系统标识符(WId)是屏幕的本地插件。

票数 3
EN

Stack Overflow用户

发布于 2015-03-25 16:12:10

grabWindow方法现在可以在QScreen类中使用。

您需要创建QScreen对象,并使用ex初始化它。QtGuiApplication.primaryScreen()然后抓取屏幕

代码语言:javascript
复制
screen.grabWindow(QApplication.desktop().winId())
票数 1
EN

Stack Overflow用户

发布于 2020-02-01 19:43:59

PyQt5的完整示例

代码语言:javascript
复制
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtGui import QPixmap, QScreen
from datetime import datetime

date = datetime.now()
filename = date.strftime('%Y-%m-%d_%H-%M-%S.jpg')
app = QApplication(sys.argv)
QScreen.grabWindow(app.primaryScreen(), 
QApplication.desktop().winId()).save(filename, 'png')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29260686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档