qt代码实现侧边导航栏,要求实现三个界面之间的切换
时间: 2023-12-06 09:44:25 浏览: 378
QT实现自定义侧边导航栏
要实现侧边导航栏,可以使用QTreeView或者QListWidget等Qt自带的控件。以下是使用QListWidget实现侧边导航栏的代码示例:
```
// 创建侧边导航栏
QListWidget *listWidget = new QListWidget(this);
listWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
listWidget->setMaximumWidth(200);
listWidget->addItem("页面1");
listWidget->addItem("页面2");
listWidget->addItem("页面3");
// 创建三个界面
QWidget *page1 = new QWidget();
QWidget *page2 = new QWidget();
QWidget *page3 = new QWidget();
// 将三个界面添加到QStackedWidget中
QStackedWidget *stackedWidget = new QStackedWidget();
stackedWidget->addWidget(page1);
stackedWidget->addWidget(page2);
stackedWidget->addWidget(page3);
// 连接侧边导航栏和QStackedWidget,实现切换页面
connect(listWidget, SIGNAL(currentRowChanged(int)), stackedWidget, SLOT(setCurrentIndex(int)));
// 创建主布局,并将侧边导航栏和QStackedWidget添加到主布局中
QHBoxLayout *mainLayout = new QHBoxLayout();
mainLayout->addWidget(listWidget);
mainLayout->addWidget(stackedWidget);
// 设置主窗口的布局
QWidget *mainWidget = new QWidget(this);
mainWidget->setLayout(mainLayout);
setCentralWidget(mainWidget);
```
在上述代码中,首先创建一个QListWidget作为侧边导航栏,其中添加了三个页面的名称。然后创建了三个QWidget作为页面,将它们添加到QStackedWidget中。通过连接QListWidget的currentRowChanged信号和QStackedWidget的setCurrentIndex槽函数,实现了在点击侧边导航栏中的页面名称时,切换到相应的页面。最后将侧边导航栏和QStackedWidget添加到主布局中,并将主布局设置为主窗口的布局。
阅读全文