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);
        });
}
  •  效果展示

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM