Как установитьObjectName объекта QGraphicsLineItem - PullRequest
0 голосов
/ 05 мая 2019

Я хотел бы установить ObjectName на мой LineItem

но когда я использую

self.line.setItemName('%d' % i)

это не работает и останавливает программу там. Может кто-нибудь сказать мне, как это сделать? Plz

def createLineItem(self,start,end):

    global i
    i +=1

    self.line = QGraphicsLineItem(QLineF(start, end))
    print("~")
    self.line.setItemName('%d' % i)
    print("~~")
    print( "Line",self.line.objectName())
    self.scene().addItem(self.line)

1 Ответ

0 голосов
/ 05 мая 2019

Прежде всего, откуда вы взяли ту информацию, что QGraphicsLineItem - метод setItemName? QGraphicsLineItem не имеет метода setItemName. С другой стороны, objectName является свойством QObjects, а QGraphicsLineItem - нет. Альтернативой для сохранения имен является использование метода данных:

KEY_NAME = 0 

# ...

def createLineItem(self,start,end):
    global i
    i +=1
    line = QGraphicsLineItem(QLineF(start, end))
    line.setData(KEY_NAME, '%d' % i)
    print( "Line", line.data(KEY_NAME))
    self.scene().addItem(line)
...