2013-06-25 85 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,爲了刪除特定的一個。

我最好的想法是創建一個變量,其中包含一個隨每個添加的QLabel而變化的數字,例如var = rf + str(num)和num = 0,然後爲每個QLabel添加1到num,然後使用getattr爲實例,所以getattr(self,var)= Qtgui.QLabel(...),不幸的是,這給我一個錯誤,我無法將該值賦給函數。我不能創建一本字典,因爲我必須爲此創建不同的實例。

任何想法將不勝感激,非常感謝。

回答

0

您可以將它們全部保存在一個字典中,然後將其標籤文本鍵入。它還提供了一種快速檢查重複項的方法。