我正在添加小部件,并且同样想要删除该小部件,但是该小部件无法从布局中删除。

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);

    }
}


我正在检查currentIndexQStackedWidget,然后添加和删除小部件。

最佳答案

您应该有一个QStackedWidget,将所有页面放入其中,并使用其功能在页面之间进行切换,而不是拥有许多QStackedWidgets并手动在它们之间进行切换。如果您希望拥有两个QStackedWidgets,最好创建第三个QStackedWidget,将两个QStackedWidgets放置在一起并在它们之间轻松切换。您无需手动操作布局。

无论如何,removeWidget方法仅禁用小部件的几何管理。它拥有与以前相同的父代和职位。如果要使其消失,则必须手动将其隐藏。

实际上,您可以仅调用stack2->hide(); stack3->show();并删除布局方法的用法。您不必从布局中删除小部件,只需将其隐藏即可。

10-08 00:12