我想要做的是动态地在窗口小部件的布局中添加窗口小部件:
my_widget->layout()->addWidget(another_widget);
但遗憾的是layout()方法是一个访问者。
另一种方法是使用MainWindow的ui变量
ui->my_widget_layout->addWidget(another_widget);
让我可以直接访问小部件的布局。 还有另一种方法吗?
谢谢。
答案 0 :(得分: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();