Qt應用開發(基礎篇)——堆棧窗口 QStackedWidget

一、前言

????????QStackedWidget繼承于QFrame,QFrame繼承于QWidget,是Qt常用的堆棧窗口部件。

??????? 框架類QFrame介紹

?????????QStackedWidget堆棧窗口,根據下標切換,一次顯示一個小部件,常用于應用界面切換圖片輪詢播放等場景。

?二、QStackedWidget類

1、count

??????? 該屬性表示當前堆棧子部件的數量。

int count() const    //獲取選項卡數

2、currentIndex

??????? 該屬性表示當前顯示的子部件的下標,如果子部件數量為0,則返回-1。

int currentIndex() const            //獲取當前選項卡下標
void setCurrentIndex(int index)     //設置當前選項卡下標

3、公共方法

1)增加子部件

??????? 使用addWidget增加子部件,默認插入到尾部。

int addWidget(QWidget *widget)

2)插入子部件

??????? 使用insertWidget在索引的位置插入子部件,如果索引index超出范圍,那么插入到尾部,返回值為實際插入的位置。

int insertWidget(int index, QWidget *widget)

3)移除子部件

??????? 使用removeWidget移除子部件,注意這里是從布局中移除,導致小部件被隱藏起來。

void removeWidget(QWidget *widget)

4)查找子部件

??????? 使用indexOf找到某子部件索引,如果不存在則返回-1。

int indexOf(QWidget *widget) const

5)設置/讀取子部件

??????? 如果子部件不存在則返回空指針。

QWidget *widget(int index) const
QWidget *currentWidget() const
void setCurrentWidget(QWidget *widget)

4、信號

??????? 當前索引發生變化觸發currentChanged信號。

void currentChanged(int index)

??????? 子部件被移除觸發widgetRemoved信號。

void widgetRemoved(int index)

?5、實例

??????? 根據下拉框的選項修改stackWidget的顯示子部件。

QFont serifFont("Times", 20, QFont::Bold);
QWidget *firstPageWidget = new QWidget;
QLabel *firstble = new QLabel("Page1",firstPageWidget);
firstble->setFont(serifFont);
QWidget *secondPageWidget = new QWidget;
QLabel *secondble = new QLabel("Page2",secondPageWidget);
secondble->setFont(serifFont);
QWidget *thirdPageWidget = new QWidget;
QLabel *thirdble = new QLabel("Page3",thirdPageWidget);
thirdble->setFont(serifFont);QStackedWidget *stackedWidget = new QStackedWidget(this);
stackedWidget->addWidget(firstPageWidget);
stackedWidget->addWidget(secondPageWidget);
stackedWidget->addWidget(thirdPageWidget);
stackedWidget->setFrameStyle(QFrame::Panel | QFrame::Raised);
stackedWidget->move(300,200);
stackedWidget->setFixedWidth(200);
stackedWidget->setFixedHeight(200);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(stackedWidget);
setLayout(layout);QComboBox *pageComboBox = new QComboBox(this);
pageComboBox->addItem(tr("Page 1"));
pageComboBox->addItem(tr("Page 2"));
pageComboBox->addItem(tr("Page 3"));
connect(pageComboBox, QOverload<int>::of(&QComboBox::activated),stackedWidget, &QStackedWidget::setCurrentIndex);
pageComboBox->move(100,200);

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

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

相關文章

用Java調用C#的WebService接口

這是一個用Java調用C#版程序的例子,廢話不多說,上代碼: C#接口代碼: using System; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Web.Services.Description;[WebService(Namespace = " http://www.ta…

如何在Springboot項目中讀取zip壓縮包并且把文件導出成zip壓縮包

文章目錄 設想場景實現流程小結 設想場景 為方便老師錄入大量學生圖片信息&#xff0c;在添加照片時&#xff0c;學生的相關資料以身份證號碼圖片描述命名如 &#xff08;1231231234567一寸照片.jpg&#xff09; &#xff08;1231231234567身份證正面照片.jpg&#xff09; &am…

中小企業體育代言:探索費用策略與實際操作

隨著體育市場的不斷擴大和企業品牌的不斷提升&#xff0c;中小型企業正逐漸將目光投向了體育明星代言&#xff0c;希望通過這一策略來提升品牌知名度、美譽度&#xff0c;進而吸引目標消費者的注意力并提升銷售量。然而&#xff0c;中小型企業請體育明星代言的費用究竟是多少呢…

docker 離線模式-部署容器

有網絡的情況下下載需要的鏡像 比如(下面以tomcat為例子&#xff0c;其他鏡像類似) docker pull tomcat打包鏡像文件到本地 docker save tomcat -o tomcat.tar將tomcat.tar 上傳到內網服務器&#xff08;無外網環境&#xff09; 導入鏡像 docker load -i tomcat.tar創建容器…

element-ui的el-dialog,簡單的封裝。

el-dialog是使用率很高的組件 使用el-dialog很多都是按照文檔的例子&#xff0c;用一個變量控制是否顯示&#xff0c;再來一個變量控制標題。 如果我這個對話框多個地方使用的話還要創建多個變量&#xff0c;甚至關閉之后還要清空一些變量&#xff0c;應該可以簡化一點。我寫…

Windows Hyper-V Ubuntu 22.04 LTS安裝

文章目錄 Ubuntu準備Hyper-V啟用虛擬化支持services.msc 打開服務列表&#xff0c;關注Hyper-V服務是否啟動打開管理器創建虛擬機 啟動備份 Ubuntu 下載Ubuntu-Desktop&#xff0c;這是個iso文件。 準備 20GB以上的磁盤空間&#xff0c;ubuntu安裝后的虛擬磁盤文件超過15GB一…

C/C++test兩步完成CMake項目靜態分析

您可能一直在靜態分析中使用CMake。但您是否嘗試過將Parasoft C/Ctest與CMake一起使用嗎&#xff1f;以下是如何使用C/Ctest在基于CMake的項目中運行靜態分析的詳細說明。 CMake是用于構建、測試和打包軟件的最流行的工具之一。Parasoft C/Ctest通過簡化構建管理過程&#xff…

【Minecraft】Fabric Mod開發完整流程1 - 環境配置與第一個物品

前言 Fabric 是 Minecraft 一款非官方的模組 API,與 Forge mod 不同。它以輕量級和高性能為設計目標,專注于支持新版本的 Minecraft。 Fabric 和 Forge 在各自的加載編譯流程上差別很大&#xff0c;所以你很難看見有同時支持二者的 mod&#xff0c;除非做了兼容性處理 Fabri…

【Java筆記】對象存儲服務MinIO

1 MinIO簡介 MinIO基于Apache License v2.0開源協議的對象存儲服務&#xff0c;可以做為云存儲的解決方案用來保存海量的圖片&#xff0c;視頻&#xff0c;文檔。由于采用Golang實現&#xff0c;服務端可以工作在Windows,Linux, OS X和FreeBSD上。配置簡單&#xff0c;基本是復…

mac-右鍵-用VSCode打開

1.點擊訪達&#xff0c;搜索自動操作 2.選擇快速操作 3.執行shell腳本 替換代碼如下&#xff1a; for f in "$" doopen -a "Visual Studio Code" "$f" donecommand s保存會出現一個彈框&#xff0c;保存為“用VSCode打開” 5.使用

基于百度語音識別API智能語音識別和字幕推薦系統——深度學習算法應用(含全部工程源碼)+測試數據集

目錄 前言總體設計系統整體結構圖系統流程圖 運行環境模塊實現1. 數據預處理2. 翻譯3. 格式轉換4. 音頻切割5. 語音識別6. 文本切割7. main函數 系統測試工程源代碼下載其它資料下載 前言 本項目基于百度語音識別API&#xff0c;結合了語音識別、視頻轉換音頻識別以及語句停頓…

【人工智能124種任務大集合】-集齊了自然語言處理(NLP),計算機視覺(CV),語音識別,多模態等任務

大家好&#xff0c;我是微學AI&#xff0c;今天給大家介紹一下人工智能124種任務大集合&#xff0c;任務集合主要包括4大類&#xff1a;自然語言處理&#xff08;NLP&#xff09;、計算機視覺&#xff08;CV&#xff09;、語音識別、多模態任務。 我這里整理了124種應用場景任…

JavaScript基礎之基于數據類型和引用數據類型

原文合集地址如下&#xff0c;有需要的朋友可以關注 本文地址 數據類型 JavaScript的數據類型有7中&#xff0c;包括6個基本類型和一個引用類型 基本數據類型&#xff1a;number, string, boolean, null, undefined, symbol 引用數據類型&#xff1a;object&#xff08;數組…

工業物聯網數據橋接教程:Modbus 橋接到 MQTT

Modbus 介紹 Modbus 是一種串行通信協議&#xff0c;用于連接工業自動化設備&#xff0c;最初由 Modicon 公司開發&#xff0c;誕生于 1979 年&#xff0c;現在已成為通用的通訊標準之一&#xff0c;廣泛用于工業自動化場景。 Modbus 采用主從模式&#xff0c;支持多種傳輸方…

PyTorch深度學習實戰(11)——卷積神經網絡

PyTorch深度學習實戰&#xff08;11&#xff09;——卷積神經網絡 0. 前言1. 全連接網絡的缺陷2. 卷積神經網絡基本組件2.1 卷積2.2 步幅和填充2.3 池化2.3 卷積神經網絡完整流程 3. 卷積和池化相比全連接網絡的優勢4. 使用 PyTorch 構建卷積神經網絡4.1 使用 PyTorch 構建 CNN…

H5移動端附件下載

目錄 H5移動端附件下載 1. 使用 window.open() 進行下載 2. 使用 a 標簽創建隱藏的可下載鏈接 3. 使用 iframe 進行下載 4. 使用 FileSaver.js 插件下載 4.1 Vue項目中導入并使用下載附件 4.2 FileSaver.js 的其他知識 H5移動端附件下載 1. 使用 window.open() 進行下載…

ClickHouse的數據類型

1.整數型 固定長度的整型&#xff0c;包括有符號整型或無符號整型。整型范圍&#xff08;-2n-1~2n-1-1&#xff09;&#xff1a; Int8 - [-128 : 127] Int16 - [-32768 : 32767] Int32 - [-2147483648 : 2147483647] Int64 - [-9223372036854775808 : 9223372036854775807]無符…

Linux學習之sed多行模式

N將下一行加入到模式空間 D刪除模式空間中的第一個字符到第一個換行符 P打印模式空間中的第一個字符到第一個換行符 doubleSpace.txt里邊的內容如下&#xff1a; goo d man使用下邊的命令可以實現把上邊對應的內容放到doubleSpace.txt。 echo goo >> doubleSpace.txt e…

sealos安裝k8s

一、前言 1、我前面文章有寫過使用 kubeadm 安裝的方式&#xff0c;大家可以去參考 &#xff08;二&#xff09;k8s集群安裝&#xff0c;有一系列的k8s文章說明 2、安裝k8s的方式有很多 kubeadmsealoskubespray等等 3、關于sealos來安裝 k8s &#xff0c;也是非常建議大家去…

Idea 反編譯jar包

實際項目中&#xff0c;有時候會需要更改jar包源碼來達到業務需求&#xff0c;本文章將介紹一下如何通過Idea來進行jar反編譯 1、Idea安裝decompiler插件 2、找到decompiler插件文件夾 decompiler插件文件夾路徑為&#xff1a;idea安裝路徑/plugins/java-decompiler/lib 3、…