2011-09-20 28 views
1

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

在此先感谢!

+0

只是为了澄清。您是在谈论在设计时还是运行时将小部件复制到新选项卡?运行时间为 –

+0

。对我的清晰度抱歉。我只是想创建一个表单进入一个可以复制到x个选项卡中的选项卡。 – Sonoilmedico

回答

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这样你就可以设置信号和插槽等。

0

如果新窗体是空白的,那么它不是副本。所有你需要做的是创建一个新的窗体小部件实例。