Le code affiché crée une fenêtre unique avec 5 lignes de widgets. En cliquant sur Push Button
déclenche la fonction qui ne parvient pas à effacer la fenêtre de tous les widgets à l'aide de la méthode .takeAt()
. Pourquoi?Comment supprimer des widgets
from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])
view = QtGui.QWidget()
view.setLayout(QtGui.QVBoxLayout())
def btnClicked():
items = []
for i in range(view.layout().count()):
item = view.layout().itemAt(i)
items.append(item)
for num, item in enumerate(items):
print 'taking out item:', num, item
view.layout().takeAt(num)
for i in range(5):
sublayout = QtGui.QHBoxLayout()
view.layout().addLayout(sublayout)
sublayout.addWidget(QtGui.QLabel('Label:'))
sublayout.addWidget(QtGui.QLineEdit('Text Edit'))
btn = QtGui.QPushButton('Push Button')
btn.clicked.connect(btnClicked)
sublayout.addWidget(btn)
view.show()
app.exec_()
Merci! Sharp comme toujours! – alphanumeric