TypeError: QPixmap.toImage(): первый аргумент несвязанного метода должен иметь тип 'QPixmap'
У меня есть метод, который сравнивает содержимое меток и возвращает совпадения. Метод таков:
def get_selected_image(self):
if self.labelDisplayBigImage.pixmap() is None:
return False
first_image = QtGui.QPixmap.toImage(self.labelDisplayBigImage.pixmap())
selectable_images = [self.labelDisplayImage1, self.labelDisplayImage2, self.labelDisplayImage3,
self.labelDisplayImage4, self.labelDisplayImage5, self.labelDisplayImage6,
self.labelDisplayImage7, self.labelDisplayImage8]
for i in range(len(selectable_images)):
second_image = QtGui.QPixmap.toImage(selectable_images[i].pixmap())
if first_image == second_image:
return selectable_images[i].pixmap()
Но получил ошибку TypeError: QPixmap.toImage(): first argument of unbound method must have type 'QPixmap'
, Так в чем проблема?
2 ответа
Чтобы использовать метод "toImage", вы должны сначала создать экземпляр класса Qpixmap для объекта. См. http://python.6.x6.nabble.com/QPixmap-loadFromData-td5003372.html
В примере "loadfromdata" используется вместо "toImage", но принцип тот же.
xxx.pixmap()
методы, которые вы используете, уже возвращают QPixmap
s. Вместо того, чтобы пытаться использовать QPixmap.toImage(xxx.pixmap())
Просто используйте xxx.pixmap().toImage()
,
В вашем случае это было бы self.labelDisplayBigImage.pixmap().toImage()
а также selectable_images[i].pixmap().toImage()
,