Qt之QStackedWidget
簡述
QStackedWidget繼承自QFrame。
QStackedWidget類提供了多頁面切換的布局,一次只能看到一個界面。
QStackedWidget可用于創建類似于QTabWidget提供的用戶界面。
- 簡述
- 使用
- 效果
- 源碼
- 接口
- 信號
- 共有槽函數
- 總結
使用
一個QStackedWidget可以用一些子頁面進行填充。
效果
源碼
QPushButton *pButton = new QPushButton(this); QLabel *pFirstPage= new QLabel(this); QLabel *pSecondPage = new QLabel(this); QLabel *pThirdPage = new QLabel(this); m_pStackedWidget = new QStackedWidget(this);pButton->setText(QStringLiteral("點擊切換")); 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(pButton, 0, Qt::AlignLeft | Qt::AlignVCenter); pLayout->addWidget(m_pStackedWidget); pLayout->setSpacing(10); pLayout->setContentsMargins(10, 10, 10, 10); setLayout(pLayout);// 連接切換按鈕信號與槽 connect(pButton, &QPushButton::clicked, this, &MainWindow::switchPage);// 切換頁面 void MainWindow::switchPage() {int nCount = m_pStackedWidget->count();int nIndex = m_pStackedWidget->currentIndex();// 獲取下一個需要顯示的頁面索引++nIndex;// 當需要顯示的頁面索引大于等于總頁面時,切換至首頁if (nIndex >= nCount)nIndex = 0;m_pStackedWidget->setCurrentIndex(nIndex); }接口
int addWidget(QWidget * widget)
添加頁面,并返回頁面對應的索引
int count() const
獲取頁面數量
int currentIndex() const
獲取當前頁面的索引
QWidget * currentWidget() const
獲取當前頁面
int indexOf(QWidget * widget) const
獲取QWidget頁面所對應的索引
int insertWidget(int index, QWidget * widget)
在索引index位置添加頁面
void removeWidget(QWidget * widget)
移除QWidget頁面,并沒有被刪除,只是從布局中移動,從而被隱藏。
QWidget * widget(int index) const
獲取索引index所對應的頁面
信號
void currentChanged(int index)
當前頁面發生變化時候發射,index為新的索引值
void widgetRemoved(int index)
頁面被移除時候發射,index為頁面對應的索引值
共有槽函數
void setCurrentIndex(int index)
設置索引index所在的頁面為當前頁面
void setCurrentWidget(QWidget * widget)
設置QWidget頁面為當前頁面
總結
一般情況,常用的兩種方式:
根據currentWidget()來判斷當前頁面,然后通過setCurrentWidget()來設置需要顯示的頁面。
根據currentIndex()來判斷當前頁面索引,然后通過setCurrentIndex()來設置需要顯示的頁面。
轉載于:https://www.cnblogs.com/itrena/p/5938322.html
總結
以上是生活随笔為你收集整理的Qt之QStackedWidget的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 页面跳转并传递数据
- 下一篇: 学习进度条(第十五周)