好吧,这可能是重复的,但由于我无法从(可能)类似的问题中得到任何结果,这是我的:我正在开发一个小的PyQt4程序,我可以输入一首歌的名字在QLineEdit中,然后在它下面添加一个QLabel。我希望每个标签旁边都有一个按钮,用于在单击时删除标签。相关代码:
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 :(得分:0)
您可以将它们全部保存在dict中,然后将其键入标签文本。它还提供了一种检查重复项的快速方法。