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

需要注意的是: QTabWidget的currentTabText用于修改名稱。在插入頁中插入新的界面。
QStackedWidget的屬性
1?、接口(方法)
- int addWidget(QWidget * widget) 添加頁面,并返回頁面對應的索引
- int count() const 獲取頁面數(shù)量
- 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) 當前頁面發(fā)生變化時候發(fā)射,index為新的索引值
- void widgetRemoved(int index) 頁面被移除時候發(fā)射,index為頁面對應的索引值
3?、共有槽函數(shù)
- void setCurrentIndex(int index) 設置索引index所在的頁面為當前頁面
- void setCurre使用ntWidget(QWidget * widget) 設置QWidget頁面為當前頁面
一般情況,使用QStackedWidget常用的兩種方式:
根據(jù)currentWidget()來判斷當前頁面,然后通過setCurrentWidget()來設置需要顯示的頁面。
根據(jù)currentIndex()來判斷當前頁面索引,然后通過setCurrentIndex()來設置需要顯示的頁面。
實例演示
(實現(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);
});
}
效果展示

到此這篇關于詳解Qt中QStackedWidget控件的使用的文章就介紹到這了,更多相關Qt QStackedWidget內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C++ 使用PrintWindow實現(xiàn)窗口截圖功能
這篇文章主要介紹了C++ 如何使用PrintWindow實現(xiàn)窗口截圖功能,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下2020-08-08
C語言字符函數(shù)中的isalnum()和iscntrl()你都知道嗎
這篇文章主要為大家詳細介紹了C語言字符函數(shù)中的isalnum()和iscntrl(),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02
c++結合opencv如何實現(xiàn)讀取多張圖片并顯示
這篇文章主要介紹了c++結合opencv如何實現(xiàn)讀取多張圖片并顯示問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11

