我有一个带有附加类方法QPixmap
的子类:
class Screenshot(QtGui.QPixmap):
@classmethod
def make(cls):
desktop_widget = QtGui.QApplication.desktop()
image = cls.grabWindow(
desktop_widget.winId(), rect.x(), rect.y(), rect.width(), rect.height())
import ipdb; ipdb.set_trace()
image.save()
return image
当我调用Screenshot.make()
时,传递了正确的类cls
,但通过cls.grabWindow
创建的实例不是Screenshot
:
甚至更短:
ipdb> Screenshot.grabWindow(desktop_widget.winId())
<PyQt4.QtGui.QPixmap object at 0x7f0f8154c438>
如何获取Screenshot
实例?在
Screenshot
继承自QPixmap
的所有方法都将返回QPixmap
,因此您需要显式地创建并返回Screenshot
的实例。在唯一真正的问题是避免效率低下的复制。但是,
QPixmap
提供了一个非常快速的复制构造函数来实现这一点,所以您只需要这样做:相关问题 更多 >
编程相关推荐