Qt 窗口 工具欄QToolBar、狀態欄StatusBar


每日激勵:“不設限和自我肯定的心態:I can do all things。 — Stephen Curry”

緒論?:
一段時間沒有更新,這段時間一直在忙各種事情,后續將再次上路持續更新C++相關知識
本章將繼續前面的QT篇章,本章主要講到Qt界面中的工具欄和狀態欄,它和前面Qt窗口中的菜單欄blog關系非常密切,通過學習這三個內容你就能搭建一個窗口的基本框架了,后續還將更新子窗口的創建,敬請期待~
————————
早關注不迷路,話不多說安全帶系好,發車啦(建議電腦觀看)。

工具欄QToolBar 🪚🔨??

??工具欄是應?程序中集成各種功能實現快捷鍵使?的?個區域。可以有多個,也可以沒有,它并不是應?程序中必須存在的組件。

  • 它是?個可移動的組件
  • 它的元素可以是各種窗?組件
  • 它的元素通常以圖標按鈕的?式存在。

如下圖為?具欄的?意圖🗺?:
在這里插入圖片描述
使用QToolBar表示工具欄對象,一個窗口可以有多個工具欄,也可以沒有,工具欄也可以手動移動位置。調? QMainWindow類 的 addToolBar() 函數來創建?具欄,每增加?個?具欄都需要調??次該函數。

在這里插入圖片描述

實操1🎈

  1. 創建菜單欄MenuBar

  2. 創建菜單QMenu(文件),并添加到菜單欄中

  3. 手動創建QToolBar對象toolBar,再將工具欄加到窗口中(addToolBar

  4. 創建工具項兩個 QAction 對象,構造輸入名稱

  5. 添加到工具欄和菜單欄中 addAction
    在這里插入圖片描述

  6. 給工具項使用triggered信號添加信號handle1 2(內部進行打印)
    在這里插入圖片描述

  7. 不過典型的工具欄一般是圖標而不是文本

  8. 給工具項設置圖標 setIcon
    在這里插入圖片描述

  9. QAction如果出現在工具欄上,也會產生 圖標 覆蓋文本

  10. 但注意的是:

    1. 此處被覆蓋的文本 會以 tooltip的形式展示

但注意的是QAction即是QMenu的子元素又是QToolBar的子元素,釋放的時候只會釋放一次,并不會重復delete

實操2:創建多個工具欄🎈

  1. 創建兩個工具欄,并添加到窗口中 addToolBar

  2. 創建4個菜單項QAction并分別添加到工具欄中

    1. 其中這倆個工具前面的 … 時代表可以移動的狀態
      在這里插入圖片描述
  3. 可以設置工具欄出現的初始位置,在addToolBar構造的時候進行設置使用另外一種重載的函數:設置第一個參數為停靠的位置:

    1. Qt::LeftToolBarArea 停靠在左側
    2. Qt::RightToolBarArea 停靠在右側
    3. Qt::TopToolBarArea 停靠在頂部
    4. Qt::BottomToolBarArea 停靠在底部
    5. Qt::AllToolBarAreas 以上四個位置都可停靠

在這里插入圖片描述

  1. 可以設置工具欄允許停放到那些邊緣
    1. QToolBar方法 setAllowedAreas(參數同上,以 | 進行增加)
  2. 可以設置工具欄是否允許浮動、移動
    1. setFloatable 不允許浮動(當設置不允許時就無法浮動)
      在這里插入圖片描述

    2. setMoveable 不允許移動
      在這里插入圖片描述

狀態欄🫠🫠QStatusBar

狀態欄簡單從記事本來理解就如下圖框選:
在這里插入圖片描述

同樣的和菜單欄類似Qt會默認生成一個
在這里插入圖片描述

實操🎈

  1. 在我們創建的時候也是使用statusBar的時候,存在就獲取,不存在就創建
  2. 將status設置到窗口中 setStatusBar(狀態欄沒有被創建這里是必要的,若存在沒啥副作用)
  3. 顯示臨時信息,showMessage(message,顯示時間ms)
  4. 給狀態欄中添加一個子控件
    1. 狀態欄使用addWidget條件,第一個參數是控件對象,第二個參數是一個拉伸系數
    2. QLabel、ProgressBar、PushButton…
    3. addPermanentWidget從右往左的添加控件

源碼:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QStatusBar>
#include <QLabel>
#include <QProgressBar>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QStatusBar* status = new QStatusBar();setStatusBar(status);//    showMessage("111",1000);QLabel* label = new QLabel("完成度:");QProgressBar* pro = new QProgressBar();
// 從左往右添加,參數1:widget、參數2:拉伸系數
//    status->addWidget(label);
//    status->addWidget(pro);status->addPermanentWidget(label);status->addPermanentWidget(pro);}MainWindow::~MainWindow()
{delete ui;
}

最終效果
在這里插入圖片描述


本章完。預知后事如何,暫聽下回分解。

如果有任何問題歡迎討論哈!

如果覺得這篇文章對你有所幫助的話點點贊吧!

持續更新大量C++ qt細致內容,早關注不迷路。

?

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

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

相關文章

FFmpeg——參數詳解

FFmpeg參數詳解一、基本命令結構1.1、查詢參數1.1.1、version1.1.2、buildconf1.1.3、devices1.1.4、formats1.1.5、muxers1.1.6、demuxers1.1.7、codecs1.1.8、decoders1.1.9、encoders1.1.10、bsfs1.1.11、protocols1.1.12、filters1.1.13、pix_fmts1.1.14、layouts1.1.15、s…

流媒體傳輸:RTSP傳輸詳解(包含RTP,RTCP,RTSP詳解)

一、什么是 RTSP?協議 1.1 RTSP 協議簡介? RTSP&#xff0c;全稱實時流傳輸協議&#xff08;Real Time Streaming Protocol&#xff09;&#xff0c;是一種位于應用層的網絡協議。它主要用于在流媒體系統中控制實時數據&#xff08;如音頻、視頻等&#xff09;的傳輸&#…

Python學習-----1.認識Python

目錄 前言 1.關于Python博客前期的內容 2.計算機基礎概念 2.1.什么是計算機? 2.2.什么是編程&#xff1f; 2.3.編程語言有哪些&#xff1f; 3.Python背景知識 3.1.Python是怎么來的&#xff1f; 3.2.Python都可以用來干什么&#xff1f; 3.3.Python的優缺點 3.4.Py…

MongoDB頻繁掉線頻繁斷開服務的核心原因以及解決方案-卓伊凡|貝貝|莉莉|糖果

MongoDB頻繁掉線頻繁斷開服務的核心原因以及解決方案-卓伊凡|貝貝|莉莉|糖果查看日志內容 &#xff1a;2025-07-22T17:05:20.2160800 I CONTROL [initandlisten] MongoDB starting : pid34231 port28018 dbpath/data/mongodb 64-bit hostVM-0-17-centos 2025-07-22T17:05:20.21…

VUE懶加載(4種方式)

第一種 使用 Webpack 的動態導入&#xff08;Dynamic Imports&#xff09;第二種 Vue Router 中的懶加載第三種 使用第三方庫第四種 使用 Vuex 進行異步數據加載雖然不是直接的懶加載&#xff0c;但你可以在組件內部或 Vuex store 中使用異步 action 來加載數據&#xff0c;確保…

【ROS1】09-ROS通信機制——參數服務器

目錄 一、參數服務器概念 二、參數操作 2.1 C實現 2.1.1 新增參數 2.1.2 修改參數 2.1.3 查詢參數 2.1.4 刪除參數 2.2 python實現 2.2.1 新增參數 2.2.2 修改參數 2.2.3 查詢參數 2.2.4 刪除參數 一、參數服務器概念 假設正在開發一個復雜的機器人應用&#xff0…

C#.NET dapper 詳解

簡介 Dapper 是由 Stack Overflow 團隊開發的一個簡單、高性能的微型 ORM&#xff08;Object?Relational Mapper&#xff09;&#xff0c;僅幾千行代碼&#xff0c;依賴于 ADO.NET 的 IDbConnection&#xff0c;通過動態生成 IL 來映射結果到實體對象。 與 EF、NHibernate 這類…

【LeetCode 熱題 100】35. 搜索插入位置——二分查找(左閉右開)

Problem: 35. 搜索插入位置 給定一個排序數組和一個目標值&#xff0c;在數組中找到目標值&#xff0c;并返回其索引。如果目標值不存在于數組中&#xff0c;返回它將會被按順序插入的位置。 請必須使用時間復雜度為 O(log n) 的算法。 文章目錄整體思路完整代碼時空復雜度時間…

Python-初學openCV——圖像預處理(四)——濾波器

目錄 一、圖像噪點消除噪聲&#xff1a; 1、概念 2、均值濾波 3、方框濾波 4 、高斯濾波 5、中值濾波 6、雙邊濾波 7、總結 一、圖像噪點消除噪聲&#xff1a; 1、概念 指圖像中的一些干擾因素&#xff0c;通常是由圖像采集設備、傳輸信道等因素造成的&#xff0c;表現…

嵌入式系統可靠性設計

嵌入式系統可靠性設計硬件件可靠性設計1. 硬件設計原則2. 硬件設計注意問題2.1 引腳布局和走線2.2 元器件選擇和布局2.3 電源和地線分離2.4 EMI/EMC設計2.5 系統可靠性2.6 資源利用和擴展性軟件可靠性設計1. 設計原則1.1 模塊化設計1.2 冗余設計1.3 容錯設計1.4 實時性保障1.5 …

cJSON在STM32單片機上使用遇到解析數據失敗問題

我們在單片機上解析JSON格式時&#xff08;比如在用云平臺物聯網開發時&#xff09;&#xff0c;可以直接使用cJson庫來完成自己的操作&#xff0c;而不需要單獨實現&#xff0c;具體使用方法可以搜一下。 cJson&#xff1a;一個基于 C 語言的 Json 庫&#xff0c;它是一個開源…

python3基礎語法梳理(三)

接上一篇博客 &#x1f3ae; 猜數字小游戲 - Python版 &#x1f9e0; 游戲規則&#xff1a; 系統隨機生成一個 1 到 10 的整數玩家輸入猜測的數字使用 if 語句判斷玩家猜得是否正確提示“猜對了”或“太大/太小了” import randomsecret_number random.randint(1, 10) att…

【docker】將已有mysql腳本導入鏡像內使用

準備SQL腳本將SQL腳本&#xff08;如init.sql&#xff09;放在宿主機目錄下&#xff0c;例如&#xff1a;/path/to/sql-scripts/init.sql啟動MySQL容器并掛載腳本使用 -v 參數將SQL腳本掛載到容器的初始化目錄&#xff1a;docker run --name mysql-container \-e MYSQL_ROOT_PA…

【機器學習深度學習】LLamaFactory微調效果與vllm部署效果不一致如何解決

目錄 前言 一、問題本質 1.1 問題說明 1.2 問題本質示意 二、常見原因 LLaMAFactory對話模板規則定義 模型對話模板定義規則 三、解決方法 提取代碼myset.py 創建jinja文件 安裝VLLM 運行VLLM 安裝運行open webui流程 四、流程梳理 前言 本文主要講述的主要內容…

Python入門構建網頁

用純 Python 構建 Web 應用 本教程將帶你從零開始&#xff0c;構建一個交互式的待辦事項清單。 fasthtml 的核心哲學是“回歸初心&#xff0c;大道至簡”。在當今復雜的前后端分離技術棧中 &#xff0c;它提供了一條返璞歸真的路徑&#xff0c;旨在讓你能用純粹的 Python 構建從…

開源 Arkts 鴻蒙應用 開發(九)通訊--tcp客戶端

文章的目的為了記錄使用Arkts 進行Harmony app 開發學習的經歷。本職為嵌入式軟件開發&#xff0c;公司安排開發app&#xff0c;臨時學習&#xff0c;完成app的開發。開發流程和要點有些記憶模糊&#xff0c;趕緊記錄&#xff0c;防止忘記。 相關鏈接&#xff1a; 開源 Arkts …

Go的defer和recover

在 Go 語言中&#xff0c;defer 和 recover 是兩個緊密相關的關鍵字&#xff0c;主要用于錯誤處理和資源清理。它們通常一起使用&#xff0c;特別是在處理panic&#xff08;運行時崩潰&#xff09;時&#xff0c;確保程序不會直接崩潰&#xff0c;而是能夠優雅地恢復并繼續執行…

Spring Boot 配置文件常用配置屬性詳解(application.properties / application.yml)

前言 Spring Boot 的一大優勢就是通過簡單的配置文件即可快速定制應用行為&#xff0c;而無需編寫大量 XML 配置或 Java 代碼。Spring Boot 使用 application.properties 或 application.yml 作為核心配置文件&#xff0c;支持豐富的配置屬性。 本文將詳細介紹 Spring Boot 常用…

uni-appDay02

1.首頁-通用輪播組件 輪播圖組件需要再首頁和分類頁使用&#xff0c;封裝成通用組件 準備組件自動導入組件 <script setup lang"ts"> import XtxSwiper from /components/XtxSwiper.vue import CustomNavbar from ./components/CustomNavbar.vue </scrip…

FastAPI入門:請求體、查詢參數和字符串校驗、路徑參數和數值校驗

請求體 FastAPI 使用請求體從客戶端&#xff08;例如瀏覽器&#xff09;向 API 發送數據。請求體是客戶端發送給 API 的數據。響應體是 API 發送給客戶端的數據。 使用 Pydantic 模型聲明請求體&#xff0c;能充分利用它的功能和優點 from fastapi import FastAPI from pydanti…