Qt create 使用qlistwidget 和qstackedwidget 代替动态生成qtabwidget tabbar。
时间: 2023-11-29 12:05:38 浏览: 74
使用 QListWidget 和 QStackedWidget 可以代替动态生成 QTabWidget 的方法,实现类似的功能。下面是一个简单的示例:
```cpp
// 创建 QListWidget 控件
QListWidget *listWidget = new QListWidget(parent);
// 创建 QStackedWidget 控件
QStackedWidget *stackedWidget = new QStackedWidget(parent);
// 添加 QListWidget 中的项
QListWidgetItem *item1 = new QListWidgetItem("Tab 1");
QListWidgetItem *item2 = new QListWidgetItem("Tab 2");
listWidget->addItem(item1);
listWidget->addItem(item2);
// 添加对应的 QStackedWidget 页面
QWidget *page1 = new QWidget();
QWidget *page2 = new QWidget();
stackedWidget->addWidget(page1);
stackedWidget->addWidget(page2);
// 将 QListWidget 和 QStackedWidget 放入布局中
QHBoxLayout *layout = new QHBoxLayout();
layout->addWidget(listWidget);
layout->addWidget(stackedWidget);
// 连接 QListWidget 的 currentItemChanged 信号和 QStackedWidget 的 setCurrentIndex 槽函数
connect(listWidget, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), stackedWidget, SLOT(setCurrentIndex(int)));
```
这样就可以通过 QListWidget 控件的选项卡来切换 QStackedWidget 控件中的页面了。
阅读全文