2
我是新來的,我是法國人,所以請原諒我的英語水平。我的部件不想消失
我的一個函數創建一個具有給定的標籤一些按鈕,從標籤列表,當我選擇從QTableView
細胞。但是當我選擇另一個單元格時,有時候標籤列表是空的(並且必須是)。所以我想清除舊按鈕的佈局,如果列表中沒有標籤,則不顯示任何內容。但這裏的代碼:
def clearLayout(self, layout):
if layout is not None:
while layout.count():
item = layout.takeAt(0)
widget = item.widget()
if widget is not None:
widget.deleteLater()
else:
self.clearLayout(item.layout())
def getInfos(self, element):
"""Slot qui récupère les infos d'une vidéo quand la cell
correspondante est sélectionnée"""
self.tags = liste.displayTag(self.modele.record(element.row()).value('id'))
self.vbox_tags = QtGui.QVBoxLayout()
if self.tags != None:
self.liste_boutons = list()
for indice, tag in enumerate(self.tags):
self.liste_boutons.append(QtGui.QPushButton(tag))
#Utilisation de la fonction partial trouvée ici:
#http://stackoverflow.com/questions/4578861/connecting-slots-and-signals-in-pyqt4-in-a-loop
self.liste_boutons[indice].clicked.connect(partial(self.displayVidsWithTag, tag))
self.vbox_tags.addWidget(self.liste_boutons[indice])
#On aligne les boutons des tags en haut
self.vbox_tags.setAlignment(QtCore.Qt.AlignTop)
self.onglet_tags.setLayout(self.vbox_tags)
else:
self.clearLayout(self.vbox_tags)
的clearLayout
方法不未顯示我的按鈕。你能幫我解決我的問題嗎?
真誠。
尼斯一人。我感到很蠢...... 我在我的initUI方法中移動了QVBoxLayout的聲明,並且一切正常。非常感謝。 – Rififi 2012-08-08 18:21:53
很高興幫助。如果這解決了您的問題,請務必點擊複選標記以關閉該問題! – jdi 2012-08-08 18:41:25