我想要做的是在小部件的布局中动态添加小部件:
my_widget->layout()->addWidget(another_widget);
Run Code Online (Sandbox Code Playgroud)
但遗憾的是layout()方法是一个访问器。
另一种方法是使用 MainWindow 的 ui 变量,
ui->my_widget_layout->addWidget(another_widget);
Run Code Online (Sandbox Code Playgroud)
这使我可以直接访问小部件的布局。还有另一种方法可以做到这一点吗?
谢谢。
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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6256 次 |
| 最近记录: |