日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt之QStackedWidget

發布時間:2024/4/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。