0

好的,这可能是重复的,但是由于我无法从(可能)类似的问题中真正得到任何东西,所以这是我的:我正在开发一个小型 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(...),不幸的是,这给了我一个错误,我无法将该值分配给函数。而且我无法创建字典,因为我必须为此提供不同的实例。

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

4

1 回答 1

0

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

于 2013-06-25T20:08:51.433 回答