詳解Qt中QStackedWidget控件的使用
引言
QStackedWidget繼承自QFrame。
QStackedWidget類提供瞭多頁面切換的佈局,一次隻能看到一個界面。
QStackedWidget可用於創建類似於QTabWidget提供的用戶界面。
先來看看QTabWidget控件的效果:
需要註意的是: QTabWidget的currentTabText用於修改名稱。在插入頁中插入新的界面。
QStackedWidget的屬性
1️、接口(方法)
- 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所對應的頁面
2️、信號
- void currentChanged(int index) 當前頁面發生變化時候發射,index為新的索引值
- void widgetRemoved(int index) 頁面被移除時候發射,index為頁面對應的索引值
3️、共有槽函數
- void setCurrentIndex(int index) 設置索引index所在的頁面為當前頁面
- void setCurre使用ntWidget(QWidget * widget) 設置QWidget頁面為當前頁面
一般情況,使用QStackedWidget常用的兩種方式:
根據currentWidget()來判斷當前頁面,然後通過setCurrentWidget()來設置需要顯示的頁面。
根據currentIndex()來判斷當前頁面索引,然後通過setCurrentIndex()來設置需要顯示的頁面。
實例演示
(實現QTabWidget的效果,用按鈕觸發切換界面)
編輯ui界面
編輯代碼(連接信號槽)
#include "layout.h" #include"qlabel.h" #include"qstackedwidget.h" #include"qpushbutton.h" #pragma execution_character_set("utf-8") Layout::Layout(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); connect(ui.btn1, &QPushButton::clicked, [=]() { ui.stackedWidget->setCurrentIndex(1); }); connect(ui.btn2, &QPushButton::clicked, [=]() { ui.stackedWidget->setCurrentIndex(2); }); connect(ui.btn3, &QPushButton::clicked, [=]() { ui.stackedWidget->setCurrentIndex(0); }); }
效果展示
到此這篇關於詳解Qt中QStackedWidget控件的使用的文章就介紹到這瞭,更多相關Qt QStackedWidget內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Qt實現界面滑動切換效果的思路詳解
- QT中大部分部件如何使用舉例詳解
- Qt信號與槽知識點總結歸納
- PyQt5 QListView 高亮顯示某一條目的案例
- C++ Qt之halcon讀取像素項目過程詳解