QStackedWidget
QStackedWidget
是 Qt 框架提供的一个小部件(widget),用于管理多个子部件,并在同一时间只显示其中一个子部件。它可以看作是一个堆栈,每个子部件都相当于堆栈中的一个页面。
QStackedWidget
提供了一种简单的方式来实现页面切换和导航,类似于选项卡控件或向导对话框。只有当前显示的子部件会被渲染,其他子部件则处于隐藏状态。
以下是 QStackedWidget
的一些重要特性和常用方法:
- 可以通过调用
addWidget(QWidget *widget)
将子部件添加到QStackedWidget
中。 - 通过调用
setCurrentWidget(QWidget *widget)
或setCurrentIndex(int index)
来设置当前显示的子部件。 - 使用
currentWidget()
方法可以获取当前显示的子部件。 - 通过调用
addWidget(QWidget *widget)
返回子部件的索引。 - 可以使用
count()
方法获取子部件的数量。 - 可以使用
widget(int index)
方法通过索引获取特定位置的子部件。 - 可以通过调用
removeWidget(QWidget *widget)
或removeWidget(int index)
删除指定的子部件。
下面是一个简单示例,演示如何使用 QStackedWidget
实现两个页面的切换:
// 创建 QStackedWidget 对象
QStackedWidget *stackedWidget = new QStackedWidget(this);// 创建两个子部件(页面)
QWidget *page1 = new QWidget();
QWidget *page2 = new QWidget();// 将子部件添加到 stackedWidget 中
stackedWidget->addWidget(page1);
stackedWidget->addWidget(page2);// 设置当前显示的子部件为 page1
stackedWidget->setCurrentWidget(page1);// 显示 stackedWidget
stackedWidget->show();
在这个示例中,我们首先创建了一个 QStackedWidget
对象 stackedWidget
。然后,我们创建了两个子部件 page1
和 page2
。通过调用 addWidget()
方法,我们将这两个子部件添加到 stackedWidget
中。
接下来,通过调用 setCurrentWidget()
方法,我们将当前显示的子部件设置为 page1
,这样只有 page1
会被渲染和显示出来。
最后,我们调用 show()
方法显示 stackedWidget
。
通过使用 QStackedWidget
,我们可以根据需要切换显示不同的子部件,从而实现页面之间的切换和导航。