2009-12-09 21 views
0

當我嘗試改變佈局的位置與setParent結果是無功能或奇怪。怎麼用QLayout-> setParent

了以下工作:

ui.txDiag_1->setParent(ui.tab_2); 
movingHlayout = new QVBoxLayout(ui.tab_2); 
movingHlayout->setSpacing(3); 
movingHlayout->setMargin(3); 
movingHlayout->setObjectName(QString::fromUtf8("movingHlayout")); 
movingHlayout->addWidget(ui.txDiag_1); 

但這並不(movingHlayout已經手之前建造):

ui.txDiag_1->setParent(ui.tab_2); 
movingHlayout->setParent(ui.tab_2); 
movingHlayout->setSpacing(3); 
movingHlayout->setMargin(3); 
movingHlayout->setObjectName(QString::fromUtf8("movingHlayout")); 
movingHlayout->addWidget(ui.txDiag_1); 

回答

2

您可能必須調用的setLayout()在widget要設置佈局高達英寸

http://doc.qt.io/qt-5/qwidget.html#setLayout

正如您從文檔中看到的那樣,佈局的所有權將自動設置爲目標窗口小部件。

+0

thx我會嘗試 – 2009-12-10 17:13:21

+0

仍然不起作用 – 2009-12-12 01:53:23

+0

它的工作原理,然後它不再工作了 – 2009-12-12 01:53:53

0

要完成對方的回答,這是爲什麼setParent如您所願不起作用的原因:

setParentQLayout實現,但在QObject只。所以使用它只會改變指針的所有權和刪除,而不是小部件佈局機制。