2015-06-24 103 views
-1
添加動態控件到一個小部件的佈局

我想要做的是在動態的一個小部件的佈局添加小組件:我怎樣才能在QT

my_widget->layout()->addWidget(another_widget); 

但遺憾的佈局()方法是訪問。

另一種方式做,這是使用主窗口的UI變量,

ui->my_widget_layout->addWidget(another_widget); 

這使我對小部件的佈局直接訪問。 有沒有另一種方法來做到這一點?

謝謝。

+0

執行'addWwidget'爲你的'my_widget' – user3528438

+0

你好成員。 layout()仍然是一個訪問器。另外QWidget和QObject沒有任何佈局成員變量。即使我在MyWidget中實現了addWidget,我仍然無法將新的小部件添加到my_widget的佈局中。 Thnx – user1176476

+0

然後也使佈局成員。 – user3528438

回答

3

layout()是一個訪問者出了什麼問題?有用!它返回QLayout *,您可以添加其他小部件。如果家長已經可見,請確保你的這些小工具show()

您也可以投的佈局,如果你認爲是更具體的會在一個特定的佈局有用:

auto grid = qobject_cast<QGridLayout*>(parent->layout()); 
if (grid) 
    // Add in the second column 
    grid->addWidget(widget, grid->rowCount(), 1); 
else 
    parent->layout()->addWidget(widget); 
widget->show();