QGroupboxにレイアウトを追加したいと思います。 this answerを読むことで、私の望む要素を問題なく追加することができます。 this answerの助けを借りて、ウィジェットをもう一度削除する方法を学びました。すべてこれはうまく動作初めて。私は今、私のQGroupboxに再び同じウィジェットを持つレイアウトを追加したいとき、それらは表示されません。Pyqtは削除後にレイアウトを追加できません
しかし、私のプリントデバッグでは、アイテムがあることがわかります。私はthis questionを知っています。ウィジェットを動的に追加する方法を示していますが、ウィジェットを削除する方法は示されていません。
マイショット:
def test_class(self): #called by a button
self.layout = QGridLayout()
label1 = QLabel('mylabel1')
label2 = QLabel('mylabel2')
combo1 = QComboBox()
self.layout.addWidget(label1,0,0)
self.layout.addWidget(label2,1,0)
self.layout.addWidget(combo1,2,0)
self.grpbox.setLayout(self.layout) # the Qgroupbox which holds the layout
def clearLayout(self, layout):
print "called"
if layout is not None:
while layout.count():
item = layout.takeAt(0)
widget = item.widget()
print item, widget # does print when calling the methods again
if widget is not None:
widget.deleteLater()
else:
self.clearLayout(item.layout())
def test_remove(self): # called by a button
self.clearLayout(self.layout)
最初に追加した後、私の新しいレイアウトが表示されるよう、ループを削除する方法?