如何在 QT 中将小部件动态添加到小部件的布局中
How can i add dynamically widget into a widget's layout in QT
我想做的是在小部件的布局中动态添加一个小部件:
my_widget->layout()->addWidget(another_widget);
但遗憾的是 layout() 方法是一个访问器。
另一种方法是使用 MainWindow 的 ui 变量,
ui->my_widget_layout->addWidget(another_widget);
这让我可以直接访问小部件的布局。
还有其他方法吗?
谢谢。
layout()
作为访问者有什么问题?有用!它 returns 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();
我想做的是在小部件的布局中动态添加一个小部件:
my_widget->layout()->addWidget(another_widget);
但遗憾的是 layout() 方法是一个访问器。
另一种方法是使用 MainWindow 的 ui 变量,
ui->my_widget_layout->addWidget(another_widget);
这让我可以直接访问小部件的布局。 还有其他方法吗?
谢谢。
layout()
作为访问者有什么问题?有用!它 returns 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();