更新动态元素

Update dynamic elements

我正在尝试更新场景中的灯光列表。为此,我保留最后一个列表并删除所有元素,并根据新列表创建新元素...... 它删除了所有元素就好了,但是当我尝试用新元素更新时..它只是崩溃并说:

RuntimeError:对象的名称'textName1' 不是唯一的。 #

应该是删除了吧??

这是这部分的代码..

def updateList(self, name, totalLgt, *args):
    print "update %s" % name
    #create new buttons

    self.text = pm.text('textName'+str(totalLgt), label="Name: %s" %name)
    self.button = pm.button('btnName'+str(totalLgt), label="ON" ,command = lambda *args: self.turnOn(totalLgt, name))
    self.button = pm.button('btnNameS'+str(totalLgt), label="SOLO", command = lambda *args: self.turnSolo(totalLgt, name))

def update(self, totalLgt,lis, *args):
   totalLgt = 0
   for lgt in lis:
        totalLgt += 1

   i = 1
   print "updatea"
   print lis
   for i in range(totalLgt):
      if (pm.window('textName'+str(i+1), exists=True)):
         pm.deleteUI('textName'+str(i+1), control = True)
         pm.deleteUI('btnName'+str(i+1), control = True ) 
         pm.deleteUI('btnNameS'+str(i+1), control = True )

   lisN = pm.ls(type='light') 
   totalLgt = 0 
   #list all lights in scene
   for lgt in lisN: 
      totalLgt += 1
      nameLgt = lgt.longName()
      name = nameLgt.split("|")[1]
      self.updateList(name, totalLgt)

列表和新列表的打印是正确的,所以我不确定为什么会失败...

我成功地添加了一个包含所有按钮的布局并删除了该布局 =)