无法将标签中的Qwidgets复制到新标签页

时间:2011-09-20 22:15:43

标签: c++ qt4 qt-creator

好的,所以我一直在疯狂地试图找到一天的答案。我想要做的是在选项卡中复制所有小部件。我想将副本传输到新选项卡。想一下选项卡中的表单,当您单击“新建选项卡”时,它会显示相同的表单但空白。我是QTCreator的新手,所以任何指针都会很棒。

提前致谢!

2 个答案:

答案 0 :(得分:2)

任何源自QObject的类都是not copyable。如果你想“复制”一个小部件,那么在你有两个代表模型的不同视图的情况下,模型 - 视图架构可能更合适。

另一个想法:你可以让每个需要可复制的类创建一个状态对象,然后可以用它来设置副本上的状态。

由于您只是尝试在多个位置显示相同的表单,因此您可以执行以下操作。

首先,创建我认为称为MyForm的表单:

class MyForm: QWidget {...};

然后,在父表格中:

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

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

您可能需要拔出new,以便设置信号和插槽等。

答案 1 :(得分:0)

如果新表单为空,则表示不是副本。您需要做的就是创建表单小部件的新实例。