2013-06-25 34 views
0

好的,这可能是重复的,但由于我无法从类似的问题中得到任何答案,所以这里是我的:我正在研究一个小型的PyQt4程序,可以在QLineEdit中输入歌曲的名称,然后在其下面添加一个QLabel。我需要在这些标签中的每一个旁边都有一个按钮,用于在单击时删除标签。相关代码:在Python/PyQt4中动态调整实例

def Add(self): 


     self.rf= QtGui.QLabel(self.le1.text(),self) 
     self.rf.move(45,30) 
     self.rf.resize(450,30) 
     self.rf.show() 


     self.x = QtGui.QPushButton("X",self) 
     self.x.move(10,30) 
     self.x.resize(30,30) 
     self.x.show() 
     self.x.clicked.connect(self.Del) 


    def Del(self): 

     self.rf.close() 
     self.x.close() 

现在,我不理解的是如何,我可以单击该按钮时,不同的实例分配给每个这些动态添加Qlabels,为了删除特定的一个。

我最好的想法是创建一个变量,其中包含一个随每个添加的QLabel而变化的数字,例如var = rf + str(num)和num = 0,然后为每个QLabel添加1到num,然后使用getattr为实例,所以getattr(self,var)= Qtgui.QLabel(...),不幸的是,这给我一个错误,我无法将该值赋给函数。我不能创建一本字典,因为我必须为此创建不同的实例。

任何想法将不胜感激,非常感谢。

回答

0

您可以将它们全部保存在一个字典中,然后将其标签文本键入。它还提供了一种快速检查重复项的方法。