是否可以用指针更改布局的内容?
我想做以下几件事。
在标题中:
QWidget* activeView;
QWidget* one;
QWidget* two;
...在源文件中,我在构造函数中设置了小部件,并将第一个部件推送到布局中:
activeView = one;
ui->activeLayout->addWidget(activeView);稍后,我想用插槽或方法更改activeView
activeView = two;我试过了,但没用。我甚至调用了布局的update()方法。
发布于 2016-05-08 23:29:43
不幸的是,这是行不通的。
你想要的是QStackedWidget。正式文档是这里。
如果您不想使用此小部件并希望手动执行,则必须在代码中自己重构布局。它可以用一种方法包装,不会太难看。
示例:
void clearLayout(QLayout *layout)
{
if (layout) {
while(layout->count() > 0){
QLayoutItem *item = layout->takeAt(0);
delete item->widget();
delete item;
}
}
}
void setNewWidgetVisible(QWidget *activeView)
{
clearLayout(ui->activeLayout);
ui->activeLayout->addWidget(activeView);
}https://stackoverflow.com/questions/37105811
复制相似问题