詳解Qt中QStackedWidget控件的使用
引言
QStackedWidget繼承自QFrame。
QStackedWidget類提供了多頁面切換的布局,一次只能看到一個(gè)界面。
QStackedWidget可用于創(chuàng)建類似于QTabWidget提供的用戶界面。
先來看看QTabWidget控件的效果:

需要注意的是: QTabWidget的currentTabText用于修改名稱。在插入頁中插入新的界面。
QStackedWidget的屬性
1?、接口(方法)
- int addWidget(QWidget * widget) 添加頁面,并返回頁面對(duì)應(yīng)的索引
- int count() const 獲取頁面數(shù)量
- int currentIndex() const 獲取當(dāng)前頁面的索引
- QWidget * currentWidget() const 獲取當(dāng)前頁面
- int indexOf(QWidget * widget) const 獲取QWidget頁面所對(duì)應(yīng)的索引
- int insertWidget(int index, QWidget * widget) 在索引index位置添加頁面
- void removeWidget(QWidget * widget) 移除QWidget頁面,并沒有被刪除,只是從布局中移動(dòng),從而被隱藏。
- QWidget * widget(int index) const 獲取索引index所對(duì)應(yīng)的頁面
2?、信號(hào)
- void currentChanged(int index) 當(dāng)前頁面發(fā)生變化時(shí)候發(fā)射,index為新的索引值
- void widgetRemoved(int index) 頁面被移除時(shí)候發(fā)射,index為頁面對(duì)應(yīng)的索引值
3?、共有槽函數(shù)
- void setCurrentIndex(int index) 設(shè)置索引index所在的頁面為當(dāng)前頁面
- void setCurre使用ntWidget(QWidget * widget) 設(shè)置QWidget頁面為當(dāng)前頁面
一般情況,使用QStackedWidget常用的兩種方式:
根據(jù)currentWidget()來判斷當(dāng)前頁面,然后通過setCurrentWidget()來設(shè)置需要顯示的頁面。
根據(jù)currentIndex()來判斷當(dāng)前頁面索引,然后通過setCurrentIndex()來設(shè)置需要顯示的頁面。
實(shí)例演示
(實(shí)現(xiàn)QTabWidget的效果,用按鈕觸發(fā)切換界面)
編輯ui界面

編輯代碼(連接信號(hào)槽)
#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);
});
}
效果展示

到此這篇關(guān)于詳解Qt中QStackedWidget控件的使用的文章就介紹到這了,更多相關(guān)Qt QStackedWidget內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C字符串函數(shù)對(duì)應(yīng)的C++ string操作詳解
在本篇文章里小編給大家整理的是一篇關(guān)于C字符串函數(shù)對(duì)應(yīng)的C++ string操作知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2020-01-01
C語言實(shí)現(xiàn)點(diǎn)餐系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)點(diǎn)餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
C++利用兩個(gè)棧實(shí)現(xiàn)隊(duì)列的方法
這篇文章主要給大家介紹了關(guān)于C++利用兩個(gè)棧實(shí)現(xiàn)隊(duì)列的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
C++基于socket UDP網(wǎng)絡(luò)編程實(shí)現(xiàn)簡(jiǎn)單聊天室功能
這篇文章主要為大家詳細(xì)介紹了C++基于socket UDP網(wǎng)絡(luò)編程實(shí)現(xiàn)簡(jiǎn)單聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
MATLAB實(shí)現(xiàn)五子棋游戲(雙人對(duì)戰(zhàn)、可悔棋)
這篇文章主要為大家詳細(xì)介紹了MATLAB實(shí)現(xiàn)五子棋游戲,可以進(jìn)行雙人對(duì)戰(zhàn)、也可悔棋,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
C++獲取特定進(jìn)程CPU使用率的實(shí)現(xiàn)代碼
寫一個(gè)小程序在后臺(tái)記錄每個(gè)進(jìn)程的CPU使用情況,揪出鎖屏后占用CPU的進(jìn)程,于是自己寫了一個(gè)C++類CPUusage,方便地監(jiān)視不同進(jìn)程的CPU占用情況。本人編程還只是個(gè)新手,如有問題請(qǐng)多多指教2019-04-04
使用C語言遞歸與非遞歸實(shí)現(xiàn)字符串反轉(zhuǎn)函數(shù)char *reverse(char *str)的方法
本篇文章是對(duì)使用C語言遞歸與非遞歸實(shí)現(xiàn)字符串反轉(zhuǎn)函數(shù)char *reverse(char *str)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05

