Очистить все виджеты в макете в Pyqt - PullRequest
37 голосов
/ 25 декабря 2010

Есть ли способ очистки (удаления) всех виджетов в макете?

self.plot_layout = QtGui.QGridLayout()
self.plot_layout.setGeometry(QtCore.QRect(200,200,200,200))
self.root_layout.addLayout(self.plot_layout)
self.plot_layout.addWidget(MyWidget())

Теперь я хочу заменить виджет в plot_layout новым виджетом.Есть ли простой способ очистить все виджеты в plot_layout?Я не вижу такого способа.

Ответы [ 11 ]

0 голосов
/ 16 декабря 2012
        for i in reversed (range(layout.count())):
            layout.itemAt(i).widget().close()
            layout.takeAt(i)

или

        for i in range(layout.count()):
            layout.itemAt(0).widget().close()
            layout.takeAt(0)
...