我正在添加小部件,并且同样想要删除该小部件,但是该小部件无法从布局中删除。
void mywindow::popUpWindow()
{
if(stack1->currentIndex()==0){
mainLayout->removeWidget(stack3);
mainLayout->addWidget(stack2);
this->setGeometry(80,50,250,200);
}
if(stack1->currentIndex()==1){
mainLayout->removeWidget(stack2);
mainLayout->addWidget(stack3);
this->setGeometry(80,50,250,200);
}
}
我正在检查
currentIndex
的QStackedWidget
,然后添加和删除小部件。 最佳答案
您应该有一个QStackedWidget,将所有页面放入其中,并使用其功能在页面之间进行切换,而不是拥有许多QStackedWidgets并手动在它们之间进行切换。如果您希望拥有两个QStackedWidgets,最好创建第三个QStackedWidget,将两个QStackedWidgets放置在一起并在它们之间轻松切换。您无需手动操作布局。
无论如何,removeWidget
方法仅禁用小部件的几何管理。它拥有与以前相同的父代和职位。如果要使其消失,则必须手动将其隐藏。
实际上,您可以仅调用stack2->hide(); stack3->show();
并删除布局方法的用法。您不必从布局中删除小部件,只需将其隐藏即可。