2013-06-25 3 views
0

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

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

ответ

0

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