Не удается скопировать Qwidgets из вкладки в новую вкладку - PullRequest
1 голос
/ 21 сентября 2011

Хорошо, поэтому я схожу с ума, пытаясь найти ответ на этот вопрос в течение дня. Я пытаюсь сделать копию всех виджетов на вкладке. Я хочу перенести копию на новую вкладку. Подумайте о форме на вкладке, и когда вы нажмете «Новая вкладка», она отобразит ту же форму, но пустую. Я новичок в QTCreator, поэтому любые указатели были бы хороши.

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 21 сентября 2011

Любой класс, производный от QObject, не копируется .Если вы хотите «скопировать» виджет, то, возможно, лучше подойдет архитектура вида модели, когда у вас есть два разных представления, представляющих модель.

Еще одна мысль: у вас может быть каждый класс, который должен бытькопируемый создать объект состояния, который затем можно использовать для установки состояния копии.

Поскольку вы просто пытаетесь отобразить одну и ту же форму в нескольких местах, вы можете сделать что-то вроде этого.

Сначала создайте свою форму, которая, как я предполагаю, называется MyForm:

class MyForm: QWidget {...};

Затем в родительской форме:

void ContainerForm::ContainerForm(...) {
    connect(pbAddNewTab, SIGNAL(clicked()), SLOT(addNewTab()));
}

void ContainerForm::addNewTab() {
    tabWidget->addTab(new MyForm(this));
}

Возможно, вам потребуется извлечьnew для настройки сигналов, слотов и т. Д.

0 голосов
/ 21 сентября 2011

Если новая форма пуста, то это не копия. Все, что вам нужно сделать, это создать новый экземпляр виджета формы.

...