如何从QStackedWidget中删除所有小部件?

4
如何从QStackedWidget中删除所有小部件? 我只需要从QStackedWidget中简单地删除所有小部件。
2个回答

7
你需要遍历所有小部件并将它们全部删除:
for(int i = stackedWidget->count(); i >= 0; i--)
{
    QWidget* widget = stackedWidget->widget(i);
    stackedWidget->removeWidget(widget);
    widget->deleteLater();
}

2
我不确定这会起作用……最好写成 while(stackedWidget->count() > 0){ QWidget* widget = stackedWidget->widget(0); /..../ } - Mr. Developerdude

1

我尝试在Python中运行了这个例子,结果删除了5页中的3页。

我进行了一些检查,并得出结论,在循环中需要始终删除索引为0的页面,因为当您删除第0页时,第1页变为第0页。

    # 获取总页面数
    pages = self.ui.stackedWidget_2.count()
    # 循环删除页面
    for i in range(pages):
        widget = self.ui.stackedWidget_2.widget(0);
        self.ui.stackedWidget_2.removeWidget(widget);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接