динамическое назначение экземпляров в Python/PyQt4

Хорошо, это может быть дубликат, но поскольку я ничего не мог получить из (возможно) похожих вопросов, вот мой: я работаю над небольшой программой 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, затем добавление 1 к num для каждого QLabel, а затем использование getattr для экземпляров. , поэтому getattr(self, var) = Qtgui.QLabel(...), что, к сожалению, выдает ошибку, что я не могу присвоить это значение функции. И я не могу создать словарь, так как для этого мне нужны разные экземпляры.

Любые идеи будут высоко оценены, большое спасибо.


person Peter Goldsborough    schedule 25.06.2013    source источник


Ответы (1)


Вы можете сохранить их все в словаре, а затем отключить его от текста метки. Он также обеспечивает быстрый способ проверки дубликатов.

person blakejgriffin    schedule 25.06.2013