【发布时间】:2012-08-05 21:38:08
【问题描述】:
我是新来的,我是法国人,所以请原谅我的英语。
当我从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 方法不会不显示我的按钮。你能帮忙解决我的问题吗?
真诚的。
【问题讨论】: