2016-01-20 3 views
0

У меня есть метод сравнения содержимого ярлыков и совпадений с возвратом. Метод:TypeError: QPixmap.toImage(): первый аргумент метода unbound должен иметь тип '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'. Так в чем проблема ?

ответ

1

Чтобы использовать метод «toImage», вам сначала нужно создать экземпляр класса Qpixmap для объекта. См. http://python.6.x6.nabble.com/QPixmap-loadFromData-td5003372.html

В примере вместо «toImage» используется «loadfromdata», но принцип тот же.

+0

Вы имеете в виду следующее: 'second_image = QtGui.QPixmap() second_image.toImage (selectable_images [i] .pixmap())'. Я пробовал это, но получил ошибку 'QPixmap.toImage(): слишком много аргументов –

0

xxx.pixmap() методы, которые вы используете, уже возвращены построены QPixmap s. Вместо того, чтобы пытаться использовать QPixmap.toImage(xxx.pixmap()), просто используйте xxx.pixmap().toImage().

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

+0

На этот раз получена ошибка:' AttributeError: объект NoneType 'не имеет атрибута' toImage'' –

+0

@ CahitYıldırım Тогда 'selectable_images [i] .pixmap() 'возвращает' None' для одного или нескольких ваших изображений. Вам придется отлаживать это самостоятельно. –

 Смежные вопросы

  • Нет связанных вопросов^_^