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() методы, которые вы используете, уже возвращают QPixmaps. Вместо того, чтобы пытаться использовать QPixmap.toImage(xxx.pixmap())Просто используйте xxx.pixmap().toImage(),

В вашем случае это было бы self.labelDisplayBigImage.pixmap().toImage() а также selectable_images[i].pixmap().toImage(),

Другие вопросы по тегам