2013-06-25 2 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을 추가 이들 각각에 다른 인스턴스를 할당 할 수있는 방법이다.

내가 가진 가장 좋은 아이디어는 var = rf + str (num) 및 num = 0과 같은 추가 된 QLabel마다 변경되는 숫자를 포함하는 변수를 작성한 다음 각 QLabel에 num을 1로 추가 한 다음 getattr (getattr (self, var) = Qtgui.QLabel (...)), getattr (getattr)은 불행하게도 그 값을 함수에 할당 할 수 없다는 오류를줍니다. 그리고 나는 다른 인스턴스를 가지고 있기 때문에 사전을 만들 수 없습니다.

어떤 아이디어라도 높이 평가 될 것입니다.

답변

0

당신은 그 모든 내용을 사전에 보관 한 다음 레이블 텍스트의 내용을 입력 할 수 있습니다. 또한 중복을 확인할 수있는 빠른 방법을 제공합니다.

관련 문제