I made three QVboxlayout in main layout, and second QVboxlayout has sub three QHBoxlayout which has checkbox and groupbox.
Second QVboxlayout has layout named checkboxlayout.
Initial state
When Make button is clicked, 20 x 3 checkboxes and groupbox will be shown in second QVBoxlayout (=checkboxlayout).
When MAKE button clicked
and, Second Make button is clicked, I want clear boxes and labels but PyQT overwrites on just before layout
Duplicated index
(See that index number appears duplicated : 1 and 2)
Without self.checkboxlayout.takeAt(0) code, then PyQT makes identical checkbox bottom
Without takeAt code
How can I remove first checkboxlayout so I can get clear second checkboxlayout?
def initUI(self):
self.clickedidx = 0
self.lineEdit1 = QLineEdit()
self.pushButton1 = QPushButton(" Make ")
self.pushButton2 = QPushButton(" I am dumb ")
self.pushButton1.clicked.connect(self.onEnter)
self.hlayout = QHBoxLayout()
self.vlayout = QVBoxLayout()
self.hlayout.addWidget(QLabel('Link:'), alignment=Qt.AlignTop)
self.hlayout.addWidget(self.lineEdit1, alignment=Qt.AlignTop)
self.hlayout.addWidget(self.pushButton1, alignment=Qt.AlignTop)
self.vlayout.addLayout(self.hlayout)
self.checkboxlayout = QVBoxLayout()
self.vlayout.addLayout(self.checkboxlayout)
self.hlayout = QHBoxLayout()
self.hlayout.addWidget(self.pushButton2, alignment=Qt.AlignBottom)
self.vlayout.addLayout(self.hlayout)
self.setLayout(self.vlayout)
self.center()
self.show()
def onEnter(self):
self.clickedidx += 1
groupbox = QGroupBox()
checkbox = []
hlayout = QHBoxLayout()
vlayout = QVBoxLayout()
for i in range(1, 21):
widget = QCheckBox( num2words(i) + " " + str(self.clickedidx) )
vlayout.addWidget(widget)
groupbox.setLayout(vlayout)
hlayout.addWidget(groupbox)
groupbox = QGroupBox()
vlayout = QVBoxLayout()
for i in range(21, 41):
widget = QCheckBox( num2words(i) + " " + str(self.clickedidx) )
vlayout.addWidget(widget)
groupbox.setLayout(vlayout)
hlayout.addWidget(groupbox)
groupbox = QGroupBox()
vlayout = QVBoxLayout()
for i in range(41, 61):
widget = QCheckBox( num2words(i) + " " + str(self.clickedidx) )
vlayout.addWidget(widget)
groupbox.setLayout(vlayout)
hlayout.addWidget(groupbox)
self.checkboxlayout.takeAt(0)
self.checkboxlayout.addLayout(hlayout)