Любой класс, производный от QObject
, не копируется .Если вы хотите «скопировать» виджет, то, возможно, лучше подойдет архитектура вида модели, когда у вас есть два разных представления, представляющих модель.
Еще одна мысль: у вас может быть каждый класс, который должен бытькопируемый создать объект состояния, который затем можно использовать для установки состояния копии.
Поскольку вы просто пытаетесь отобразить одну и ту же форму в нескольких местах, вы можете сделать что-то вроде этого.
Сначала создайте свою форму, которая, как я предполагаю, называется MyForm
:
class MyForm: QWidget {...};
Затем в родительской форме:
void ContainerForm::ContainerForm(...) {
connect(pbAddNewTab, SIGNAL(clicked()), SLOT(addNewTab()));
}
void ContainerForm::addNewTab() {
tabWidget->addTab(new MyForm(this));
}
Возможно, вам потребуется извлечьnew
для настройки сигналов, слотов и т. Д.