У меня тот же вопрос, что и у Natim.
QStackedWidget - это решение для предустановленного макета.Это действует как легкомысленная вещь в старой закусочной для музыкальной шкатулки.(X-количество альбомов в музыкальном автомате, пролистайте установленные альбомы).
Однако это не решает вопрос.
Например, у меня есть код, который я прототипирую с макетом пользовательского интерфейса, однако я хочу заменить некоторые виджеты, выполняющие роль заполнителей, на соответствующие виджеты, которые кодируются во время выполнения основного скрипта, илидинамически создается.
Я уверен, что есть простая процедура или предостережение относительно того, как правильно удалить / заменить виджет.
У моего кода есть базовый виджет textEdit в сетке.Я хочу закодировать пользовательскую версию этого виджета для перетаскивания, а затем заменить ее с помощью textEdit по умолчанию.
Как и в случае с Natim, код кажется логически обоснованным, однако виджеты опасно разбиты в макетекак сбросить кошелек.
Надеюсь, можно придумать хитрость и перепостить предупреждение.
РЕШЕНИЕ:
Вуаля !!Нашел что-то, что определенно делает свое дело.ЗАКРЫТЬ свой виджет
# Remove, Create, Replace
self.ui.gridLayout.removeWidget(self.ui.dragDataEdit)
self.ui.dragDataEdit.close()
self.ui.dragDataEdit = myDumpBox(self.ui.centralwidget)
self.ui.gridLayout.addWidget(self.ui.dragDataEdit, 0, 0, 1, 1)
self.ui.gridLayout.update()
Я удалил виджет из макета, затем закрыл виджет.В настоящее время переменная, которую я использую, открыта, чтобы создать свой настраиваемый / измененный виджет, а затем повторно вставить его в макет
Да, требуется некоторая элегантность, чтобы иметь дело с более сложными макетами, но основная потребностьуничтожить виджет для его замены в методе .close ()
Cheers .. надеюсь, это поможет.B