Qt常用控件之QWidget(一)

Qt常用控件之QWidget(一)

  • 1.QWidget
  • 2.enabled屬性
  • 2.geometry

🌟🌟hello,各位讀者大大們你們好呀🌟🌟
🚀🚀系列專欄:【Qt的學習】
📝📝本篇內容:QWidget;enabled屬性;geometry
????上一篇:Qt的信號與槽(三)
💖💖作者簡介:軒情吖,請多多指教(>> ????? ) ??-

1.QWidget

在我們學習常用控件時,第一個要關注的肯定是QWidget,因為QWidget是很多控件的父類,它在圖形化界面中就是一個窗口,我們可以點擊它來查看它的屬性
在這里插入圖片描述
在這里插入圖片描述
上圖展示了大部分屬性的一個解釋,可以先做一個簡單的了解,只看文字肯定不能做到完全理解。

2.enabled屬性

這個是講的第一個屬性,也是比較簡單,它的功能是描述一個控件是否是可用狀態,那么它相對地概念就是禁用
并且這個“禁?” 指的是該控件不能接收任何??的輸?事件, 并且外觀上往往是灰?的,如果?個 widget 被禁?, 則該 widget 的?元素也被禁?
enabled有兩個可用的函數

函數聲明函數功能
isEnabled()獲取控件的狀態
setEnabled(bool false)設置控件的狀態,true為可用,false為禁用

我們可以通化這個兩個函數來實現一個功能:通過一個按鈕來控制另一個按鈕的可用狀態

在這里插入圖片描述
在這里插入圖片描述
我們可以觀察到我們兩個按鈕的objectName是不一樣的,是以控件類型+下劃線+編號的規律來的,前面也講過,控件的objectName是必須不一樣的,后續我們就可以通過ui指針來進行指向objectName,指向想要的對象。我們可以進行重命名,將“切換按鈕狀態”的按鈕的objectName改成pushButton_switch,更加有可讀性。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
我們也通過打調試信息的方式來測試了“按鈕”的功能,也可以發現,我們的按鈕一旦禁用,就會變成灰色

2.geometry

接下來要講的一個屬性是geometry,但是我們要首先關注的是它的一個發音和中文釋義以及它的拼寫
在這里插入圖片描述
它的中文意思是幾何的意思,在Qt中表示的是位置和尺寸的統稱,即x,y,width,height,分別對應的是:橫坐標,縱坐標,寬度,高度。如圖所示是各個屬性表示的內容
在這里插入圖片描述
在前面也講過我們計算機中的坐標系是左手坐標系,其坐標系的原點是當前元素的?元素的左上?。
我們在實際的開發中,并不會直接使用這幾個屬性,而是通過封裝的形式來獲取和修改,就如同這里的geometry
接下來我們介紹一下關于geometry這個屬性的相關函數

函數聲明 函數功能
const QRect& geometry() const獲取控件的位置和尺寸,返回值是一個QRect類型的,是“矩形”英文的縮寫,它包含了前面提到的四個屬性
void setGeometry(const QRect &)設置控件的位置和尺寸,以QRect這個類型為整體進行設置
void setGeometry(int x, int y, int w, int h)設置控件的位置和尺寸,以四個單獨的屬性進行設置

接下來我們寫代碼演示,功能是:通過四個按鈕來控制一個按鈕的四個方向移動
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
設置了四個按鈕,并且分別對其objectName重新命名
在這里插入圖片描述
在這里插入圖片描述
move的功能是單純的修改位置,但是geometry既可以修改位置還可以修改尺寸,并且我們在代碼中使用了qDebug()宏來打印位置尺寸信息,這些數字的單位都是像素,qDebug()能夠自動識別并打印出QRect類型的內容。但是有一個問題,為什么我們修改了它的坐標軸,它的尺寸也會發生改變?有沒有什么辦法讓按鈕單純的移動位置呢?
我們仔細觀察就能發現,它其實是一直在調整左上角的位置,但是也同時調整了寬度和高度,我們的代碼修改的是QRect的x和y(矩形會不斷的變化),如果想要達到按鈕平移就需要用到我們之前講的第二個函數,不再修改QRect,而是基于QRect的數據通過setGeometry進行挨個設置。
在這里插入圖片描述
在這里插入圖片描述

🌸🌸Qt常用控件之QWidget(一)大概就講到這里啦,博主后續會繼續更新更多Qt的相關知識,干貨滿滿,如果覺得博主寫的還不錯的話,希望各位小伙伴不要吝嗇手中的三連哦!如有小伙伴需要Qt的安裝包可以私信我,你們的支持是博主堅持創作的動力!💪💪

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

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

相關文章

AIOT開發選型:行空板 K10 與 M10 適用場景與選型深度解析

前言 隨著人工智能和物聯網技術的飛速發展,越來越多的開發者、學生和愛好者投身于創意項目的構建。 在眾多的開發板中,行空板 K10 和 M10 以其獨特的優勢脫穎而出。 本文旨在為讀者提供一份詳盡的行空板 K10 和 M10 對比分析,從適用場景、…

redis匯總筆記

語雀完整版: https://www.yuque.com/g/mingrun/embiys/calwqx/collaborator/join?tokensLcLnqz5Rv8hOKEB&sourcedoc_collaborator# 《Redis筆記》 Redis 一般問題 Redis內存模型(I/O多路模型)多路復用IO如何解釋 為什么Redis要使用單線…

STM32用PWM驅動步進電機

硬件介紹:連線:注意這里stp連的是pwm脈沖,dir連的是方向到時候代碼pwm波形就是從這里來的,具體接線根據你的代碼來注意要點:步進電機和舵機驅動是不一樣的,它是根據步長來移動的,所以要開一個中…

力扣25.7.10每日一題——重新安排會議得到最多空余時間 II

Description 今天這道題和昨天類似,只是允許順序變化。 Solution 把會議區間視作桌子,空余時間視作空位,我們要把一個桌子移到別的空位中。 初步想法是枚舉桌子,找一個長度大于等于桌子長度的空位移過去。看上去,找…

IP報文分片與重組原理及實現分析

IP報文分片與重組原理及實現分析 引用: ppp/net/packet/IPFragment.hppp/net/packet/IPFragment.cpp 1. IP分片原理 當IP數據包大小超過MTU(最大傳輸單元)時,路由器/主機將其分割為多個片段傳輸,每個片段包含&…

[python]在drf中使用drf_spectacular

安裝drf_spectacular 文檔 pypi鏈接:https://pypi.org/project/drf-spectacular/ 文檔鏈接:https://drf-spectacular.readthedocs.io/en/latest/readme.html 安裝步驟 在環境中添加 pip install drf-spectacular在setting的INSTALLED_APPS中添加 INSTALLED_APPS [# ALL…

【Datawhale AI 夏令營】 用AI做帶貨視頻評論分析(二)

5.預訓練模型跑分 回顧賽題 回顧賽題任務 挑戰與難點: 標注數據少 ——> 半監督學習 or 數據增強 聚類分析噪點影響嚴重 回顧Baseline 問題: TF-IDF無法捕捉以下語義。聚類分析粗糙,未評估聚類質量。 提升方案: 分類任務…

SPSSPRO:數據分析市場SaaS挑戰者的戰略分析

目錄 第一部分:執行摘要 第二部分:平臺解構:產品、架構與用戶體驗 2.1 SaaS范式轉移:架構與起源 2.2 功能能力:分析師的工具箱 2.3 “智能分析”的價值主張 第三部分:市場滲透與受眾細分 3.1 目標用戶…

低版本hive(1.2.1)UDF實現清除歷史分區數據

目標&#xff1a;通過UDF實現對表歷史數據清除 入參&#xff1a;表名、保留天數N 一、pom文件 <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.…

C++中頂層const與底層const

在C中&#xff0c;const關鍵字用于定義常量&#xff0c;但它在指針和引用上下文中會產生兩種不同的常量性&#xff1a;頂層const&#xff08;top-level const&#xff09;和底層const&#xff08;low-level const&#xff09;。理解它們的區別是避免編譯錯誤和提高代碼質量的關…

“SRP模型+”多技術融合在生態環境脆弱性評價模型構建、時空格局演變分析與RSEI指數生態質量評價

集成云端、桌面端等環境&#xff0c;結合遙感云計算、GIS空間分析&#xff0c;R語言統計分析的優勢&#xff0c;以分析生態環境脆弱性的時空演變為主線。通過本課程的學習&#xff0c;您將掌握&#xff1a;第一&#xff0c;收集各類指標數據&#xff0c;構建的“生態壓力度-生態…

算法學習筆記:17.蒙特卡洛算法 ——從原理到實戰,涵蓋 LeetCode 與考研 408 例題

在計算機科學和數學領域&#xff0c;蒙特卡洛算法&#xff08;Monte Carlo Algorithm&#xff09;以其獨特的隨機抽樣思想&#xff0c;成為解決復雜問題的有力工具。從圓周率的計算到金融風險評估&#xff0c;從物理模擬到人工智能&#xff0c;蒙特卡洛算法都發揮著不可替代的作…

Tortoise 設置

如何關閉 Windows 下 TortoiseGit 任務欄里窗口標題的分支顯示 一、引言 TortoiseGit 是一個專為團隊協作設計的 Git 圖形化客戶端&#xff0c;旨在解決版本控制中常見的問題&#xff0c;如沖突、回滾、歷史查看等。本文檔是 TortoiseGit 的使用手冊前言部分&#xff0c;旨在向…

[論文閱讀] 人工智能 + 軟件工程 | AI助力軟件可解釋性:從用戶評論到自動生成需求與解釋

AI助力軟件可解釋性&#xff1a;從用戶評論到自動生成需求與解釋 Automatic Generation of Explainability Requirements and Software Explanations From User ReviewsarXiv:2507.07344 Automatic Generation of Explainability Requirements and Software Explanations From …

C語言---自定義類型(上)(結構體類型)

結構體結構體的定義與聲明結構體其實和數組一樣&#xff0c;都是一些值的集合&#xff0c;只不過數組是一系類相同類型的值&#xff0c;而結構體里邊的成員可以是不同的數據類型。關于它的聲明&#xff0c;所用到的關鍵字是struct。聲明的語法如下&#xff1a;struct 結構體名{…

Java觀察者模式實現方式與測試方法

一、實現方式 自定義實現 通過手動定義Subject和Observer接口&#xff0c;實現一對多依賴關系&#xff1a; // 觀察者接口 public interface Observer {void update(float temp, float humidity, float pressure); } // 主題接口 public interface Subject {void registerObser…

leetGPU解題筆記(1)

1.題面 題目要求 向量加法 實現一個程序&#xff0c;在GPU上對兩個包含32位浮點數的向量執行逐元素加法。該程序應接受兩個長度相等的輸入向量&#xff0c;并生成一個包含它們和的輸出向量。 實現要求 禁止使用外部庫 solve函數簽名必須保持不變 最終結果必須存儲在向量C中 示例…

5. JVM 的方法區

1. JVM介紹和運行流程-CSDN博客 2. 什么是程序計數器-CSDN博客 3. java 堆和 JVM 內存結構-CSDN博客 4. 虛擬機棧-CSDN博客 5. JVM 的方法區-CSDN博客 6. JVM直接內存-CSDN博客 7. JVM類加載器與雙親委派模型-CSDN博客 8. JVM類裝載的執行過程-CSDN博客 9. JVM垃圾回收…

網絡安全的基本練習

一.docker搭建 1.安裝dockerapt-get install docker.io docker-compose2.編寫配置文件&#xff08;注意路徑正確&#xff09;vim /etc/systemd/system/docker.service.d/http-proxy.conf[Service] Environment"HTTP_PROXYhttp://科學上網訪問的ip:端口" Environment&…

380. O(1) 時間插入、刪除和獲取隨機元素

實現RandomizedSet 類&#xff1a; RandomizedSet() 初始化 RandomizedSet 對象 bool insert(int val) 當元素 val 不存在時&#xff0c;向集合中插入該項&#xff0c;并返回 true &#xff1b;否則&#xff0c;返回 false 。 bool remove(int val) 當元素 val 存在時&#xff…