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

需要注意的是: QTabWidget的currentTabText用于修改名稱。在插入頁中插入新的界面。
QStackedWidget的屬性
1?、接口(方法)
- int addWidget(QWidget * widget) 添加頁面,并返回頁面對應(yīng)的索引
- int count() const 獲取頁面數(shù)量
- int currentIndex() const 獲取當(dāng)前頁面的索引
- QWidget * currentWidget() const 獲取當(dāng)前頁面
- int indexOf(QWidget * widget) const 獲取QWidget頁面所對應(yīng)的索引
- int insertWidget(int index, QWidget * widget) 在索引index位置添加頁面
- void removeWidget(QWidget * widget) 移除QWidget頁面,并沒有被刪除,只是從布局中移動,從而被隱藏。
- QWidget * widget(int index) const 獲取索引index所對應(yīng)的頁面
2?、信號
- void currentChanged(int index) 當(dāng)前頁面發(fā)生變化時(shí)候發(fā)射,index為新的索引值
- void widgetRemoved(int index) 頁面被移除時(shí)候發(fā)射,index為頁面對應(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界面

編輯代碼(連接信號槽)
#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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言開發(fā)實(shí)現(xiàn)通訊錄管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言開發(fā)實(shí)現(xiàn)通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
C++基礎(chǔ)之this指針與另一種“多態(tài)”
this指針識別了同一個(gè)類的不同的對象,換句話說,this指針使得成員函數(shù)可以訪問同一個(gè)類的不同對象。再深入一點(diǎn),this指針使得成員函數(shù)會因?yàn)閠his指針的不同而訪問到了不同的成員變量2013-07-07
C語言實(shí)現(xiàn)可增容動態(tài)通訊錄詳細(xì)過程
這篇文章主要為大家介紹了C語言實(shí)現(xiàn)簡易通訊錄的完整流程,此通訊錄還可以增容,并且每個(gè)環(huán)節(jié)都有完整代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-05-05

