QT6 源,七章對話框與多窗體(14)棧式窗體 QStackedWidget:本類里代碼很少。舉例,以及源代碼帶注釋。

(1)這不是本章節要用到的窗體組件,只是跟著標簽窗體 QTabWidget 一起學了。這也是 QT 的 UI 界面里的最后幾個容器了。而且本類也很簡單。就了解一下它。 本類的繼承關系如下

在這里插入圖片描述

++ UI 設計界面

在這里插入圖片描述

++運行效果

在這里插入圖片描述

(2)本類的源代碼定義于頭文件 qstackedwidget . h

#ifndef QSTACKEDWIDGET_H
#define QSTACKEDWIDGET_H#include <QtWidgets/qtwidgetsglobal.h>
#include <QtWidgets/qframe.h>QT_REQUIRE_CONFIG(stackedwidget);QT_BEGIN_NAMESPACEclass QStackedWidgetPrivate;/*
The QStackedWidget class provides astack of widgets where only one widget is visible at a time.Detailed Description :
QStackedWidget可用于創建類似于QTabWidget所提供的用戶界面。
它是一個基于QStackedLayout類構建的便捷布局widget。
就像QStackedLayout一樣,QStackedWidget也可以通過構建和填充多個子部件(“頁面”)來創建和填充。QWidget *  firstPageWidget = new QWidget;QWidget * secondPageWidget = new QWidget;QWidget *  thirdPageWidget = new QWidget;QStackedWidget * stackedWidget = new QStackedWidget;stackedWidget->addWidget( firstPageWidget);stackedWidget->addWidget(secondPageWidget);stackedWidget->addWidget( thirdPageWidget);QVBoxLayout * layout = new QVBoxLayout;layout->addWidget(stackedWidget);setLayout(layout);QStackedWidget 沒有提供用戶切換頁面的固有方法。
這通常通過一個QComboBox或一個QListWidget來實現,這些控件存儲著 QStackedWidget 頁面的標題。例如:QComboBox * pageComboBox = new QComboBox;pageComboBox->addItem(tr("Page 1"));pageComboBox->addItem(tr("Page 2"));pageComboBox->addItem(tr("Page 3"));connect(pageComboBox , &QComboBox::activated,stackedWidget, &QStackedWidget::setCurrentIndex);在填充堆疊型小部件時,這些小部件會被添加到一個內部列表中。indexOf()函數返回該列表中某個小部件的索引。
小部件既可以通過使用addWidget()函數添加到列表的末尾,也可以通過使用insertWidget()函數插入到指定的索引位置。
removeWidget()函數用于從堆疊型小部件中移除一個小部件。
使用count()函數可以獲取堆疊型小部件所包含的小部件數量。widget ()、函數返回位于給定索引位置的控件。
屏幕上顯示的控件的索引由`currentlndex()函數給出,并且可以通過`setCurrentIndex()'函數進行更改。
類似地,當前顯示的控件可以通過`currentWidget()、函數獲取,并通過`setCurrentWidget()函數進行修改。每當堆疊式組件中的當前小部件發生變化或某個小部件被從堆疊式組件中移除時,
將分別發出currentChanged()、和`widgetRemoved()、信號。*/class Q_WIDGETS_EXPORT QStackedWidget : public QFrame
{Q_OBJECT//此屬性保存當前可見小部件的索引位置。如果沒有當前小部件,則當前索引為-1。//默認情況下,此屬性包含值-1,因為堆棧最初為空。Q_PROPERTY(int          currentIndexREAD        currentIndexWRITE    setCurrentIndexNOTIFY      currentChanged)//此屬性表示包含在此堆疊小部件中的小部件數量。默認情況下,此屬性包含值為0。Q_PROPERTY(int count READ count)public://Constructs a QStackedWidget with the given parent.explicit QStackedWidget(QWidget * parent = nullptr);~QStackedWidget();//   Q_PROPERTY(int          currentIndex
//              READ         currentIndex
//              WRITE     setCurrentIndex
//              NOTIFY       currentChanged)int          currentIndex () const;QWidget *    currentWidget() const;
public Q_SLOTS:void      setCurrentIndex (int       index);void      setCurrentWidget(QWidget * w    );
Q_SIGNALS:void         currentChanged(int);void         widgetRemoved (int index);//每當移除一個小部件時,都會發出此信號。將小部件的索引作為參數傳遞。public :
//   Q_PROPERTY(int          count      READ       count)int          count() const;//本類代碼很相似于 QTabWidget ,不再注釋了。int              indexOf(const QWidget *) const;QWidget *        widget (int) const;int        insertWidget(int index, QWidget * w);int           addWidget(           QWidget * w);void       removeWidget(           QWidget * w);protected:bool event(QEvent * e) override;private:Q_DISABLE_COPY(QStackedWidget)Q_DECLARE_PRIVATE(QStackedWidget)}; //完結 class QStackedWidget : public QFrameQT_END_NAMESPACE#endif // QSTACKEDWIDGET_H

(3)

謝謝

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90574.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90574.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90574.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

魔百和M401H_國科GK6323V100C_安卓9_不分地區免拆卡刷固件包

魔百和M401H_國科GK6323V100C_安卓9_不分地區免拆卡刷固件包刷機說明&#xff1a;1&#xff0c;進機頂盒設置&#xff08;密碼10086&#xff09;&#xff0c;在其他里&#xff0c;一直按左鍵約32下&#xff0c;打開調試模式2&#xff0c;進網絡設置&#xff0c;查看IP地址。3&a…

MySQL基礎02

一. 函數在 MySQL 中&#xff0c;函數是用于對數據進行特定處理或計算的工具&#xff0c;根據作用范圍和返回結果的不同&#xff0c;主要分為單行函數和聚合函數&#xff08;又稱分組函數&#xff09;。以下是詳細介紹&#xff1a;1.單行函數單行函數對每一行數據單獨處理&…

LabVIEW 視覺檢測SIM卡槽

針對SIM 卡槽生產中人工檢測效率低、漏檢誤檢率高的問題&#xff0c;設計了基于 LabVIEW 機器視覺的缺陷檢測系統。該系統通過光學采集與圖像處理算法&#xff0c;實現對卡槽引腳折彎、變形、漏銅等缺陷的自動檢測&#xff0c;誤報率為 0&#xff0c;平均檢測時間小于 750ms&am…

RocketMQ5.3.1的安裝

1、下載安裝 RocketMQ 的安裝包分為兩種&#xff0c;二進制包和源碼包。1 下載 Apache RocketMQ 5.3.1的源碼包后上傳到linux https://dist.apache.org/repos/dist/release/rocketmq/5.3.1/rocketmq-all-5.3.1-source-release.zip2 解壓編譯 $ unzip rocketmq-all-5.3.1-source…

FunASR實時多人對話語音識別、分析、端點檢測

核心功能&#xff1a;FunASR是一個基礎語音識別工具包&#xff0c;提供多種功能&#xff0c;包括語音識別&#xff08;ASR&#xff09;、語音端點檢測&#xff08;VAD&#xff09;、標點恢復、語言模型、說話人驗證、說話人分離和多人對話語音識別等。FunASR提供了便捷的腳本和…

opencv--day01--opencv基礎知識及基礎操作

文章目錄前言一、opencv基礎知識1.opencv相關概念1.1背景1.2特點1.3主要功能與應用1.4.opencv-python2.計算機中的圖像概念2.1圖像表示2.2圖像存儲彩色圖像二、opencv基礎操作1.圖像的讀取2.圖像的顯示3.保存圖像4.創建黑白圖及隨機像素彩圖5. 圖像切片&#xff08;圖片剪裁&am…

如何撤銷Git提交誤操作

要撤銷在主分支上的 git add . 和 git commit 操作&#xff0c;可以按照以下步驟安全回退&#xff1a; 完整回退步驟&#xff1a; # 1. 查看提交歷史&#xff0c;確認要回退的commit git log --oneline# 示例輸出&#xff1a; # d3f4g7h (HEAD -> main) 誤操作提交 # a1b2c3…

React+Three.js實現3D場景壓力/溫度/密度分布可視化

本文介紹了一個基于React和Three.js的3D壓力可視化解決方案&#xff0c;該方案能夠&#xff1a; 加載并渲染3D壓力模型數據 提供動態顏色映射功能&#xff0c;支持多種顏色方案&#xff1a;彩虹-rainbow,冷暖-cooltowarm,黑體-blackbody,灰度-grayscale 實現固定位置的顏色圖…

Go 官方 Elasticsearch 客戶端 v9 快速上手與進階實踐*

1、為什么選擇 go-elasticsearch&#xff1f; 版本同步&#xff1a;與 Elasticsearch 主版本保持一一映射&#xff0c;當前穩定分支為 v9&#xff0c;對應 ES 9.x 系列。(GitHub)完全覆蓋 REST API&#xff1a;所有 HTTP 端點都有等價方法&#xff0c;避免手寫 JSON/HTTP。可插…

`/etc/samba/smb.conf`筆記250720

/etc/samba/smb.conf筆記250720 /etc/samba/smb.conf 是 Samba 服務的核心配置文件&#xff0c;用于實現 Linux/Unix 與 Windows 系統間的文件和打印機共享。以下詳解其結構和常用參數&#xff1a; 配置文件結構 1. 全局設置段 [global] 控制 Samba 服務器的整體行為。 …

Java從入門到精通!第十六天,重點!(多線程和線程池)

一、多線程1&#xff0e;基本概念&#xff08;1&#xff09;程序&#xff08;Program&#xff09;&#xff1a;為了完成特定的任務&#xff0c;用某種計算機語言編寫的一組指令的集合&#xff0c;即指一段靜態的代碼&#xff08;源代碼經編譯之后形成的二進制格式的文件&#x…

軌道交通為什么要有信號系統?

軌道交通為什么要有信號系統&#xff1f;軌道交通信號系統與公路信號系統有什么不同&#xff1f; 在軌道交通中信號系統是必不可少的&#xff0c;其根本原因在于&#xff1a;在軌道交通中已經沒有辦法純靠人力去保證行車安全。 在公路交通中&#xff0c;信號其實是起輔助作用的…

docker 掛載卷

以下是針對您遇到的問題分步解答和解決方案&#xff1a;一、核心結論 ? 可以采用目錄方式&#xff1a;您的命令中的 -v /root/nginx05-vol/:/usr/share/nginx/html/ 是正確的目錄掛載語法。 ? 看不到新文件的可能原因主要集中在 權限問題、緩存機制 或 操作順序錯誤 上。二、…

uniapp 報錯 Not found ... at view.umd.min.js:1的問題

問題描述&#xff1a; uniapp的app中&#xff0c;當頁面中使用多個v-if后會出現這個報錯解決方案&#xff1a; 1、在v-if的地方加上key屬性&#xff08;key屬性要保證唯一&#xff09; 2、用v-show替換v-if&#xff08;不建議&#xff0c;可能會影響業務&#xff09;

水電站自動化升級:Modbus TCP與DeviceNet的跨協議協同應用

水電站的自動化系統就像一個精密的“神經中樞”&#xff0c;既要應對水流變化帶來的動態負載&#xff0c;又得保證閘門啟閉、水輪機調節等關鍵動作的精準性。我們去年參與的某水電站改造項目里&#xff0c;就遇到了一個典型問題&#xff1a;中控室的施耐德PLC采用Modbus TCP協議…

基于Matlab圖像處理的火災檢測系統設計與實現

隨著計算機視覺技術的快速發展&#xff0c;基于圖像處理的火災檢測系統在安全監控領域的應用得到了廣泛關注。本文提出了一種基于圖像處理的火災檢測系統&#xff0c;該系統通過對圖像進行預處理、顏色空間轉換、閾值化處理和形態學分析&#xff0c;自動檢測火災疑似區域。首先…

信息學奧賽一本通 1593:【例 2】牧場的安排 | 洛谷 P1879 [USACO06NOV] Corn Fields G

【題目鏈接】 ybt 1593&#xff1a;【例 2】牧場的安排 洛谷 P1879 [USACO06NOV] Corn Fields G 【題目考點】 1. 狀壓動規 【解題思路】 集合狀態&#xff1a;n個元素中&#xff0c;選擇x個元素構成的集合&#xff0c;可以由一個n位二進制數表示。第i位為1表示選擇第i個元…

SpringBoot創建項目的方式

一、Idea Spring initializr創建&#xff08;Spring 官網下載&#xff09; Spring官網只支持SpringBoot3.0以上&#xff0c;JDK17以上 二、idea Spring inst創建&#xff08;阿里云下載&#xff09; 阿里云可以支持JDK8的版本 Spring版本選擇2.7.6&#xff0c;選擇合適的依賴添…

云原生 —— K8s 容器編排系統

一、 簡介Kubernetes&#xff0c;也稱為K8s&#xff0c;是一個開源的容器編排系統&#xff0c;用于自動部署、擴展和管理容器化應用程序&#xff0c;幫助開發者更高效地跨集群管理應用。本文總結了 k8s 的基礎概念和技術架構。二、基礎概念1. 云原生&#xff08;Cloud Native…

SQLite中SQL的解析執行:Lemon與VDBE的作用解析

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 在 SQLite 的內部實現中&#xff0c;SQL 語句的解析與執行是一個精妙的過程&#xff0c;涉及詞法分析、語法分析、中間代碼生成與執行等多個環節。其中&#xff0c;Lemon 工具和 VDBE&#xff08;Virtual Database Engine…