“QPixmap”没有属性“grabWindow”

2024-09-27 09:35:13 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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'

Tags: 代码fromimportdatetimedatesavesysfilename
2条回答

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

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

screen.grabWindow(QApplication.desktop().winId())

您应该改用QScreen::grabWindow()QPixmap::grabWindow()is deprecated in Qt 5.0 because

there might be platform plugins in which window system identifiers (WId) are local to a screen.

相关问题 更多 >

    热门问题