2011-09-20 63 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

如果新窗體是空白的,那麼它不是副本。所有你需要做的是創建一個新的窗體小部件實例。