Qt 动态添加删除 QStackedWidget
时间: 2024-03-27 22:38:42 浏览: 17
动态添加和删除 QStackedWidget 中的页面可以通过以下步骤实现:
1. 添加页面:使用 `addWidget()` 函数向 QStackedWidget 中添加新页面,示例代码如下:
```
QWidget *newPage = new QWidget;
ui->stackedWidget->addWidget(newPage);
```
2. 删除页面:使用 `removeWidget()` 函数从 QStackedWidget 中删除页面,示例代码如下:
```
int currentIndex = ui->stackedWidget->currentIndex();
QWidget *currentPage = ui->stackedWidget->widget(currentIndex); // 获取当前页面对象
ui->stackedWidget->removeWidget(currentPage); // 从 QStackedWidget 中删除当前页面
delete currentPage; // 释放当前页面对象的内存
```
需要注意的是,使用 `removeWidget()` 函数只会将页面从 QStackedWidget 中删除,并不会释放页面对象的内存,因此需要手动调用 `delete` 函数释放当前页面对象的内存。
另外,如果需要在删除页面后,自动跳转到上一个页面,可以使用 `setCurrentIndex()` 函数设置当前页面索引,示例代码如下:
```
int currentIndex = ui->stackedWidget->currentIndex();
ui->stackedWidget->removeWidget(ui->stackedWidget->currentWidget());
ui->stackedWidget->setCurrentIndex(currentIndex - 1); // 跳转到上一个页面
```