qt的containers里的QToolBox和QTabWidget

Tool Box是一個多層次的折疊面板,通常用于組織多個可展開/折疊的面板組,每個面板有一個標題欄,用戶點擊標題欄可以展開或收起內容區域。比如設置界面中的分類選項,每個分類可以展開查看詳細內容。這樣能節省空間,讓界面更簡潔。
Tab Widget是標簽頁控件,它通過標簽頁切換不同的內容面板。每個標簽頁對應一個獨立的內容區域,用戶點擊標簽即可切換顯示的內容。常見的例子是瀏覽器的多個標簽頁,或者設置對話框中的不同選項卡。
Tool Box適合內容層級較多且需要折疊展開的情況,用戶可能不同時查看所有內容;
Tab Widget適合平級的內容切換,用戶需要在不同頁面間快速切換,同時保持每個頁面的獨立性。
還要考慮用戶可能的應用場景。比如,如果設計的是一個配置工具,可能需要用Tool Box將不同類別的設置分組折疊;如果是多文檔編輯器,可能用Tab Widget來管理多個打開的文檔。
注意選擇時的因素,比如界面空間、用戶操作習慣、內容的組織方式等。例如,如果內容項很多且用戶需要頻繁切換,Tab Widget可能更合適;如果內容需要分層次展示且需要節省空間,Tool Box更合適。

  1. QToolBox(工具箱控件)
    用途
    分層折疊面板:QToolBox 是一個 垂直堆疊的折疊容器,每個子面板(稱為“工具頁”)帶有一個標題欄,點擊標題欄可以展開或折疊對應的內容區域。
    空間節省:適用于內容較多但需要按需展示的場景,用戶可以通過展開/折疊操作按需查看特定內容。

典型場景

配置界面中的分類設置(如 IDE 的選項對話框)。
工具箱面板(如 Qt Designer 左側的控件列表)。
分步驟的向導界面(不同步驟折疊展示)。

示例

QToolBox *toolBox = new QToolBox(this);
// 添加工具頁
QWidget *page1 = new QWidget;
QWidget *page2 = new QWidget;
toolBox->addItem(page1, QIcon(":/icons/settings.png"), "基本設置");
toolBox->addItem(page2, QIcon(":/icons/advanced.png"), "高級設置");
  1. QTabWidget(標簽頁控件)
    用途
    標簽式導航:QTabWidget 通過頂部的標簽欄(或底部/側邊)切換多個子面板(稱為“標簽頁”),每個標簽頁完全獨立。
    平級內容切換:適用于需要用戶在不同內容模塊間頻繁切換的場景,所有標簽頁內容平級展示。

典型場景
多文檔編輯器(如瀏覽器的標簽頁)。
設置對話框中的分頁配置(如“常規”、“網絡”、“外觀”標簽)。
數據展示界面(如統計報表的不同視圖)。

示例

QTabWidget *tabWidget = new QTabWidget(this);// 添加標簽頁
QWidget *tab1 = new QWidget;
QWidget *tab2 = new QWidget;
tabWidget->addTab(tab1, "常規");
tabWidget->addTab(tab2, "高級");

3 QToolBox 和 QTabWidget 的關鍵區別
特性 QToolBox QTabWidget
布局方式 垂直堆疊,可折疊 標簽頁平鋪,固定顯示
空間占用 節省空間(僅展開一個面板) 需要固定空間(所有標簽頁共存)
交互方式 點擊標題欄展開/折疊 點擊標簽切換頁面
適用場景 層級化內容、低頻切換 平級內容、高頻切換
視覺復雜度 更簡潔(適合簡單分類) 更直觀(適合復雜多模塊)

選擇 QToolBox:
需要按需展開內容、節省空間,且內容層級清晰(如設置項的分類折疊)。選擇 QTabWidget:
需要快速切換多個獨立內容模塊,且所有標簽頁需要保持可見性(如多文檔編輯器)。

總結

QToolBox:適合 垂直折疊、按需查看 的內容組織(如設置分類)。
QTabWidget:適合 平級切換、高頻訪問 的多模塊界面(如多文檔/多視圖)。

根據具體需求選擇合適的容器控件,可以顯著提升用戶界面的易用性和空間效率

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

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

相關文章

【神經網絡與深度學習】深度學習中的生成模型簡介

深度學習中的生成模型 openai 的一個古早介紹 引言 深度學習中的生成模型能夠學習數據分布并生成新數據,在人工智能的多個領域中都有重要應用。不同類型的生成模型在原理和結構上各有特點,適用于不同的任務,如圖像生成、文本生成和時間序列…

js獲取明天日期、Vue3大菠蘿 Pinia的使用

直接上代碼 const today new Date(2019, 2, 28) const finalDate new Date(today) finalDate.setDate(today.getDate() 3)console.log(finalDate) // 31 March 2019 安裝 yarn add pinia # or with npm npm install pinia創建第一個store倉庫 1、在src目錄下創建store目錄…

存儲過程補充——定義條件、處理程序及游標使用

文章目錄 1. 定義條件與處理程序1.1 定義條件1.2 處理程序1.3 案例演示 2. 游標2.1 使用游標第一步,聲明游標第二步,打開游標第三步,使用游標(從游標中取得數據)第四步,關閉游標 2.2 舉例2.3 小結 在 MySQL…

藍橋杯單片機國賽模板——基于柳離風模板

藍橋杯單片機國賽模板——基于柳離風模板 文章目錄 藍橋杯單片機國賽模板——基于柳離風模板一、工程結構二、USER文件夾main.c 三、BSP文件夾1、sys2、display3、key4、timer5、iic6、ds13027、onewire8、uart9、ultrasound 四、源碼五、內存不夠 一、工程結構 與省賽模板相比…

C與指針——常見庫函數

字符串 #include<stdlibs.h> int abs(int); long labs(long); int rand(void);//0-RAND_MAX //字符串轉值 int atoi(const char*); long atol(const char*); float atof(const char*);數學\排序 #include<math.h> \\常見三角&#xff0c;sqrt(); exp(); double p…

數學復習筆記 2

前言 朋友和我討論了一個二重積分題&#xff0c;非常有意思。內容非常細致。整理如下&#xff1a; 二重積分 題目來源是 1000 上面的 16 題&#xff0c;積分區域是一個偏心圓&#xff0c;偏心圓的圓心在 y 軸上面&#xff0c;偏心圓是關于 y 軸對稱的&#xff0c;可以看關于…

Javaweb項目--Mybatis,導入com.mysql.cj.jdbc.Driver時報錯,Cannot resolve class ‘Driver‘

目錄 問題解決方法結果 問題 在項目java文件下&#xff0c;包文件下的application.properties文件中&#xff0c;項目目錄如下&#xff1a; 報錯信息如下&#xff1a; 解決方法 在pom.xml文件中增加此依賴 結果 報錯信息消失

分布式-redisson

分布式鎖redisson 加鎖流程緩存相關問題 加鎖流程 redisson底層通過lua腳本實現加鎖的原子性lock動作包含&#xff1a;加鎖、設置超時時間、鎖續命未獲取到鎖的線程通過獲取信號量許可等待&#xff0c;所釋放后釋放信號量通知等待線程 緩存相關問題 緩存失效&#xff08;擊穿…

Java基礎學完,繼續深耕(0505)Linux 常用命令

昨天休息了一天&#xff0c;沒有寫csdn 昨天和今天把Linux大概學了一下。總結一下常用命令&#xff0c;總結的不全。 Linux目錄結構 / 是所有目錄的頂點 目錄結構像一顆倒掛的樹 注意&#xff1a;/itheima 是絕對路徑&#xff0c;是指根目錄 / 下的itheima目錄 itheima…

【AI論文】Sadeed:通過小型語言模型推進阿拉伯語變音

摘要&#xff1a;由于語言的形態豐富&#xff0c;阿拉伯語文本的變音符號仍然是自然語言處理中一個持續的挑戰。 在本文中&#xff0c;我們介紹了一種基于微調解碼器語言模型的新方法Sadeed&#xff0c;該方法改編自Kuwain 1.5B Hennara等人[2025]的模型&#xff0c;該模型最初…

學習海康VisionMaster之亮度測量

一&#xff1a;進一步學習了 今天學習下VisionMaster中的亮度測量&#xff1a;這個和前面學習的都不一樣了&#xff0c;這個是測量ROI區域內的平均亮度等 1&#xff1a;什么是亮度測量&#xff1f; 我們工業上用的相機里面有一個感光芯片&#xff08;CCD/CMOS&#xff09;&…

學習路線(python)

Python從初級到專家的學習路線# 初級階段 (1-3個月)基礎語法數據結構文件操作推薦資源 中級階段 (3-6個月)面向對象編程常用模塊錯誤處理進階特性推薦資源 高級階段 (6-12個月)并發編程性能優化元編程設計模式推薦資源 專業方向 (選擇1-2個方向深入)Web開發數據分析/科學計算機…

svn文件提交失敗

這里寫自定義目錄標題 1報錯項目2.解決辦法1.安裝sqlite3.exe 數據庫2.sqlite3.exe放到svn 項目的主目錄下&#xff0c;和.svn目錄同級下, 可以直接在數據庫目錄下執行cmd命令。3.在當前目錄下 cmd 運行命令 4.最后再項目的文件夾下&#xff0c;看是否可以 clean up了。--成功&…

調試——GDB、日志

調試——GDB、日志 1. gdb常用指令2. 如何生成core文件并調試&#xff1f;3. 如何調試正在運行的程序4. 調試多進程程序5. 調試多線程程序6. log日志 gcc編譯器可以幫我們發現語法錯誤&#xff0c;但是對業務邏輯錯誤卻無能為力。當我們想找出邏輯錯誤時&#xff0c;就需要調試…

redis----通用命令

文章目錄 前言一、運行redis二、help [command]三、通用命令 前言 提示&#xff1a;這里可以添加本文要記錄的大概內容&#xff1a; 學習一些通用命令 以下操作在windows中演示 提示&#xff1a;以下是本篇文章正文內容&#xff0c;下面案例可供參考 一、運行redis 我們先c…

CatBoost算法原理及Python實現

一、概述 CatBoost 是在傳統GBDT基礎上改進和優化的一種算法&#xff0c;由俄羅斯 Yandex 公司開發&#xff0c;于2017 年開源&#xff0c;在處理類別型特征和防止過擬合方面有獨特優勢。 在實際數據中&#xff0c;存在大量的類別型特征&#xff0c;如性別、顏色、類別等&#…

五一假期作業

sub_process.c #include <stdio.h> // 標準輸入輸出庫 #include <pthread.h> // POSIX線程庫 #include <sys/ipc.h> // IPC基礎定義&#xff08;如消息隊列/共享內存&#xff09; #include <sys/msg.h> // 消息隊列操作相關…

Liunx安裝Apache Tomcat

目錄 一、了解tomcat 二、下載 三、啟動tomcat 四、網頁訪問tomcat 五、Tomcat修改默認8080端口 六、Tomcat創建項目步驟-實現項目對外訪問 一、了解tomcat Apache Tomcat 是一個開源的 Java Servlet 容器 和 Web 服務器&#xff0c;主要用于運行基于 Java 的 Web 應用…

破局者手冊 Ⅰ:測試開發核心基礎,解鎖未來測試密鑰!

目錄 一、引入背景 二、軟件測試基礎概念 2.1 軟件測試的定義 2.2 軟件測試的重要性 2.3 軟件測試的原則 三、測試類型 3.1 功能測試 3.2 接口測試 3.2.1 接口測試的概念 3.2.2 接口測試的重要性 3.2.3 接口測試的要點 3.2.4 接口測試代碼示例&#xff08;Python r…

C++ 適配器模式詳解

適配器模式&#xff08;Adapter Pattern&#xff09;是一種結構型設計模式&#xff0c;它允許不兼容的接口之間能夠協同工作。 概念解析 適配器模式的核心思想是&#xff1a; 接口轉換&#xff1a;將一個類的接口轉換成客戶希望的另一個接口 兼容性&#xff1a;使原本由于接…