【问题标题】:How to setObjectName of the QGraphicsLineItem如何设置 QGraphicsLineItem 的ObjectName
【发布时间】:2019-05-05 09:40:39
【问题描述】:

我想将 ObjectName 设置为我的 LineItem

但是当我使用

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

它不起作用并停止那里的程序。 有人可以告诉我该怎么做吗?拜托

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)

【问题讨论】:

    标签: python pyqt qgraphicsitem qgraphicslineitem


    【解决方案1】:

    首先,你从哪里得到关于 QGraphicsLineItem 的 setItemName 方法的信息? QGraphicsLineItem 没有 setItemName 方法。另一方面,objectName 是 QObjects 的属性,但 QGraphicsLineItem 不是。保存名称的另一种方法是使用 data 方法:

    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)
    

    【讨论】:

      猜你喜欢
      • 2014-12-31
      • 2012-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多