QStackedWidget
#include "mainwindow.h" #include <QLabel> #include <QPushButton> #include <QStackedWidget> #include <QVBoxLayout> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { QPushButton *pButton = new QPushButton(this); pButton->setText(QStringLiteral("点击切换")); m_pStackedWidget = new QStackedWidget(this); QLabel *pFirstPage= new QLabel(); QLabel *pSecondPage = new QLabel(); QLabel *pThirdPage = new QLabel(); pFirstPage->setText(QStringLiteral("一去丶二三里")); pSecondPage->setText(QStringLiteral("青春不老,奋斗不止!")); pThirdPage->setText(QStringLiteral("纯正开源之美,有趣、好玩、靠谱。。。")); // 添加页面(用于切换) m_pStackedWidget->addWidget(pFirstPage); m_pStackedWidget->addWidget(pSecondPage); m_pStackedWidget->addWidget(pThirdPage); //布局 QVBoxLayout *pLayout = new QVBoxLayout(); pLayout->addWidget(m_pStackedWidget); pLayout->addWidget(pButton); //pLayout->setSpacing(10); //pLayout->setContentsMargins(10, 10, 10, 10); setLayout(pLayout); // 连接切换按钮信号与槽 connect(pButton, &QPushButton::clicked, this, &MainWindow::switchPage); } MainWindow::~MainWindow() { } // 切换页面 void MainWindow::switchPage() { int nCount = m_pStackedWidget->count(); int nIndex = m_pStackedWidget->currentIndex(); // 获取下一个需要显示的页面索引 ++nIndex; // 当需要显示的页面索引大于等于总页面时,切换至首页 if (nIndex >= nCount) nIndex = 0; m_pStackedWidget->setCurrentIndex(nIndex); }