如何设置QGraphicsLineItem的ObjectName

时间:2019-05-05 09:40:39

标签: python pyqt qgraphicsitem qgraphicslineitem

我想将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 :(得分:0)

首先,您从哪里获得有关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)