def add_ranges(self):
self.ranges_layout = QtGui.QHBoxLayout() # setup the ranges_layout, it will be a child of all_ranges_layout
self.min_label = QtGui.QLabel(self.normalization) # setup the min label
self.max_label = QtGui.QLabel(self.normalization) # setup the max label
self.min_lineEdit = QtGui.QLineEdit(self.normalization) # setup the min lineEdit
self.max_lineEdit = QtGui.QLineEdit(self.normalization) # setup the max lineEdit
self.all_ranges_layout.addLayout(self.ranges_layout) # make ranges_layout a child of all_ranges_layout
self.ranges_layout.addWidget(self.min_label) # apply the min label to the widget
self.ranges_layout.addWidget(self.min_lineEdit) # apply the min lineEdit to the widget
self.ranges_layout.addWidget(self.max_label) # apply the max label
self.ranges_layout.addWidget(self.max_lineEdit) # apply the max lineEdit
self.min_label.setText(_translate("MainWindow", "Min", None)) # set the text of the min label
self.max_label.setText(_translate("MainWindow", "Max", None)) # set the text of the max label
self.min_lineEdits.append(self.min_lineEdit) # set up an array of lineEdits
self.max_lineEdits.append(self.max_lineEdit) #
def del_ranges(self):
self.ranges_layout.removeWidget(self.min_label) # remove the min label to the widget
self.ranges_layout.removeWidget(self.min_lineEdit) # remove the min lineEdit to the widget
self.ranges_layout.removeWidget(self.max_label) # remove the max label
self.ranges_layout.removeWidget(self.max_lineEdit) # remove the max lineEdit
del self.min_lineEdits[-1] # delete last element in list
del self.max_lineEdits[-1] # delete last element in list
Нажмите «Добавить диапазоны», появятся два новых поля для добавления пользователем данных.QT: Как я могу динамически добавлять и удалять виджетов в макете?
Нажмите «Удалить диапазоны», ничего не происходит, за исключением того, что кнопки визуально перемещаются вверх. Это говорит мне о том, что функция работает (вроде) и удаляет макет, но не относится к линиям и меткам.
Это две функции из программы, которую я разрабатываю. Я хочу, чтобы виджеты добавлялись и удалялись нажатием одной кнопки. Я попытался использовать deleteLater(), однако эта функция также попала в одну и ту же яму; фактически не удаляя lineEdits и метки. Это проблема не отсоединения перед удалением?
Добавлен pyqt тег. Исправьте, если это неправильно (например, вы используете pyside, например). – hyde