我想将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)
答案 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)