QT 中QTabBar隐藏某个选项,搭配QStackedWidget
时间: 2024-03-21 18:38:02 浏览: 116
您可以使用 `QTabBar` 的 `removeTab` 函数来隐藏某个选项卡,然后搭配 `QStackedWidget` 实现对应页面的隐藏和显示。
以下是一个简单的示例代码:
```cpp
// 创建 QTabBar 和 QStackedWidget 对象
QTabBar *tabBar = new QTabBar(this);
QStackedWidget *stackedWidget = new QStackedWidget(this);
// 向 QTabBar 添加选项卡,并将对应的 QWidget 添加到 QStackedWidget 中
QWidget *page1 = new QWidget(this);
QWidget *page2 = new QWidget(this);
tabBar->addTab("Tab 1");
stackedWidget->addWidget(page1);
tabBar->addTab("Tab 2");
stackedWidget->addWidget(page2);
// 隐藏第二个选项卡
tabBar->removeTab(1);
// 将 QTabBar 和 QStackedWidget 添加到布局中
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(tabBar);
layout->addWidget(stackedWidget);
setLayout(layout);
// 切换页面的函数
void switchPage(int index) {
stackedWidget->setCurrentIndex(index);
}
// 将切换页面函数与 QTabBar 的 currentChanged 信号连接起来
connect(tabBar, &QTabBar::currentChanged, this, &MyWidget::switchPage);
```
在上面的示例代码中,我们创建了一个 `QTabBar` 对象和一个 `QStackedWidget` 对象,并向 `QTabBar` 添加了两个选项卡,并将对应的 `QWidget` 添加到 `QStackedWidget` 中。然后,我们调用 `QTabBar` 的 `removeTab` 函数来隐藏第二个选项卡。最后,我们将 `QTabBar` 和 `QStackedWidget` 添加到布局中,并将 `QTabBar` 的 `currentChanged` 信号连接到一个切换页面的函数上。这样,当用户在 `QTabBar` 中选择一个选项卡时,就会触发 `currentChanged` 信号,从而调用切换页面的函数,实现对应页面的隐藏和显示。
阅读全文