qt常用控件--01

文章目錄

  • qt常用控件--01
    • 上一篇文章的補充
    • windowTitle屬性
    • windowIcon屬性
    • windowOpaCity屬性
    • cursor屬性
    • font屬性
    • 結語

很高興和大家見面,給生活加點impetus!!開啟今天的編程之路!!
在這里插入圖片描述
今天我們進一步c++11中常見的新增表達
作者:?( ‘ω’ )?260
我的專欄:qt,Linux,C++進階,C++初階,數據結構初階,題海探驪,c語言
歡迎點贊,關注!!

qt常用控件–01

繼上章,我們已經講解了兩個有關QWidget中的屬性,分別是enable屬性和geometry屬性,我們將來介紹新的幾個屬性

上一篇文章的補充

關于window frame對geometry的影響:
在這里插入圖片描述
window frame包含最小化,最大化,關閉等操作,即qt運行界面最上方的這一欄以及最左側和最右側都有這樣的一塊細邊。這個東西是系統自帶的。
再來看這樣的一個圖:
在這里插入圖片描述
最左上角是windowframe的原點,而下方一點是Widget的原點~~
所以在設置坐標時,有一個setGeometry接口,還有一個setFrameGeometry接口,總之,如果設置控件的位置的話,需要考慮到window frame的影響
來看一個示例:
在這里插入圖片描述
其實不是的,我們來看,在創建rect1和rect2的時候,我放在了Widget
的構造函數中,此時我的整個面板都沒有構造好,怎么可能會有windowframe呢?
我們只需要來添加一個按鈕即可:
因為此時如果用戶點擊按鈕,說明此時按鈕出現在了面板上,說明此時面板已經構建成功了,來看結果:
在這里插入圖片描述
多出來的部分就是系統加的窗口欄和左右細邊欄~~

windowTitle屬性

api接口:
在這里插入圖片描述

結論:windowTitle屬性只針對頂部窗口級別生效,對Widget類別是不生效的。

來看代碼:
在這里插入圖片描述

結論:這里有點雞肋,即雖然我們代碼使用錯誤,但是qt還是不會報錯,這樣就不易發現錯誤

windowIcon屬性

api接口:
在這里插入圖片描述
這里圖標包含:程序運行的圖標,程序運行時的圖標等等,來看下例:
在這里插入圖片描述

結論:windowIcon對頂部窗口級別才生效,對普通Widget類別不生效

即:在qt中,我們可以修改上述程序運行時的圖標~
如何修改呢?
我們先要準備一張圖片:
這里我準備了一張籃球的圖片,具體自己想要的圖片可以去到阿里巴巴矢量圖標庫中自取 ~
我們直接來看結果:
在這里插入圖片描述
我們創建OIcon對象為什么是在棧上創建,而不是在堆上創建,難道棧中的圖片銷毀了還能夠顯示嗎?

結論:1:QIcon,以及后面的QCursor,QFont,QPixMap這些類默認不支持添加到對象樹上,無法指定父類對象,同時,不管這些對象釋不釋放,其中的圖片資源都不會銷毀!!
2:這里尋找文件的方式需要添加一個路徑,而且,這個路徑不能帶有中文

當然,我們這里填寫的是絕對路徑,也可以填相對路徑,以 . (一個點:表示當前路徑)和 … (兩個點:表示上一級路徑)。

又有一個問題了?當我們寫的程序發布給用戶的時候,能夠保證用戶在這個路徑下也有這個圖片嗎?就算保證有了,難道用戶不會誤刪嗎?

所以,最后一個方式也是最常用的方式qrc機制:
即我們將圖片信息給提取出來,將圖片信息轉換成二進制數字放到編譯的c++代碼中,即和exe文件融為一體了。這樣這個圖片信息能和exe文件同生共死!!
步驟:創建xml文件,后綴為qrc->在該文件中加入圖片信息->qt項目去訪問這個文件信息即可;
下面直接展示步驟:
在這里插入圖片描述
隨后我們必須在彈出的這個項目界面文件夾中添加該圖片,即必須在同級文件中或者是改級下一級的子文件中添加該圖片
在這里插入圖片描述
先來看結果:
在這里插入圖片描述

總結:添加資源之后,qt項目文件想要去訪問xml文件中的資源,應寫為“:+ 前綴 + 文件名” ,“:”表示需要去訪問xml文件中的內容了,然后再寫出資源中的文件名即可。其實這里qt創建了一個虛擬目錄,本質上其實是沒有的
其實這個文件中存儲圖片的信息就是一個數組,里面存儲的是16進制信息

windowOpaCity屬性

api接口:
在這里插入圖片描述
我們直接來使用代碼舉例,這里我使用兩個PushButton并關聯上對應的槽函數:
在這里插入圖片描述
此時我們來看打印日志:
在這里插入圖片描述
我們發現這里不是呈現0.1的形式增加或減少的,其實這是數據在內存中的存儲方式不同,分為整形在內存中存儲和浮點數在內存中存儲。這里不再細細說明,只需要記得,浮點數在內存中的存儲很多時候都是近似值,所以,浮點數不適合比較大小,如0.1 + 0.2 == 0.3編譯器會返回false

這里還有一個細節,在setWindowPoacity()函數中,本身就有判斷現在這個浮點數是否合法,即我把if判斷條件語句去掉之后,仍然不會報錯,是因為內部自己已經判斷了,這是防御性編程的結果,即不管外界用戶輸入這個浮點數怎樣,都是能夠使程序運行的。

cursor屬性

api接口:
在這里插入圖片描述
這里還是設置光標,上面的windowIcon屬性是設置程序運行時的光標,這里我們是設置的鼠標懸停在改控件上的光標,同理,這里我們仍然需要采用qrc機制

其實在qt中可以直接修改這個光標,在qt designer中,控件的屬性中就有這樣的一欄:
在這里插入圖片描述
但是其中的圖標確實有些年代的氣息~~
我們直接使用qrc進制,來制造我們想要的鼠標懸停在該控件上的圖標。

因為無法截圖顯示,只能同學們自行驗證,如何覺得圖片太大,可以使用QPixmap中的scaled函數來執行縮放,同時,因為鼠標變化,默認熱點是在左上角,但是也可以通過QPixmap對象構造Qcursor對象時,指定熱點位置,單位仍然是像素。這里的熱點是鼠標點擊的那個點~~

來看代碼:
在這里插入圖片描述

font屬性

api接口:
在這里插入圖片描述
關于QFont這個類,里面包含了這個字體信息,包含字體大小,粗細,斜體,下劃線,刪除線等等:
在這里插入圖片描述
當然,這些字體信息也是能夠在控件屬性中通過圖形化界面的方式來修改的,也可以通過代碼的方式。

我們直接來通過代碼的形式:
在這里插入圖片描述

結語

今天的內容分享到這里,不足之處歡迎大家留言指出,感謝大家支持!!
旦旦而學之,久而不怠焉,迄乎成,而亦不知其昏與庸也!!
在這里插入圖片描述

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

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

相關文章

C++ 中 string 類的解析及簡易自我實現

目錄 引言 標準庫中的 string 類 功能概述 常見操作示例 自我實現簡易 string 類 代碼結構概述 1. String11.h 頭文件 類的成員變量 迭代器相關 構造函數和析構函數 基本訪問和修改方法 賦值運算符重載 內存管理和擴容 以下代碼在.cpp文件中解析: 2. String11.…

計算機的性能指標(選擇題0~1題無大題)

存儲器的性能指標 總容量存儲單元個數*存儲字長 bit 例:MAR16位,MDR16位 總容量2的16次方*16bit 補充: n個二進制位就有2的n次方不同的狀態 一般描述文件大小容量單位 2的10次方:K 2的20次方:M 2的…

React 核心原理與Fiber架構

目錄 一、虛擬 DOM 二、Diffing 算法 三、Fiber 架構 四、渲染流程 1. Render 階段(可中斷異步過程) 2. Commit 階段(同步不可中斷) 五、時間切片(Time Slicing) 六、核心流程步驟總結 1. 狀態更新…

【破局痛點,賦能未來】領碼 SPARK:鑄就企業業務永續進化的智慧引擎—— 深度剖析持續演進之道,引領數字化新范式

摘要 在瞬息萬變的數字時代,企業對業務連續性、敏捷創新及高效運營的需求日益迫切。領碼 SPARK 融合平臺,秉持“持續演進”這一核心理念,以 iPaaS 與 aPaaS 為雙擎驅動,深度融合元數據驅動、智能端口調度、自動化灰度切換、AI 智…

掌握C++核心特性

目標: 掌握C核心特性,為嵌入式開發打基礎 好的,我來為你詳細梳理一下 繼承與多態、虛函數 相關的知識點,包括單繼承、多繼承、虛函數表機制、純虛函數與抽象類、動態綁定。以下內容適合中等難度層次的理解,便于考試復…

python的高校教師資源管理系統

目錄 技術棧介紹具體實現截圖系統設計研究方法:設計步驟設計流程核心代碼部分展示研究方法詳細視頻演示試驗方案論文大綱源碼獲取/詳細視頻演示 技術棧介紹 Django-SpringBoot-php-Node.js-flask 本課題的研究方法和研究步驟基本合理,難度適中&#xf…

Java Collections工具類:高效集合操作

Collections工具類概述 Collections是Java提供的集合操作工具類&#xff0c;位于java.util包中&#xff0c;包含大量靜態方法&#xff0c;用于對List、Set、Map等集合進行排序、查找、替換、同步化等操作。 常用方法及代碼示例 排序操作 sort(List<T> list)&#xff1a…

vue指令總結

vue指令總結 一、總述 二、代碼實現&#xff08;內含大量注釋&#xff09; <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>vue入門</title><!-- 使用Vue 3官方CDN --><script src"https://unpkg.c…

RUP——統一軟件開發過程

RUP概述 RUP&#xff08;Rational Unified Process&#xff09;&#xff0c;統一軟件開發過程&#xff0c;統一軟件過程是一個面向對象且基于網絡的程序開發方法論。 在RUP中采用“41”視圖模型來描述軟件系統的體系結構。“41”視圖包括邏輯視圖、實現視圖、進程視圖、部署視…

SpringBoot電腦商城項目--增加減少購物車商品數量

1. 持久層 1.1 規劃sql語句 執行更新t_cart表記錄的num值根據cid查詢購物車的數據是否存在 select * from t_cart where cid#{cid} 1.2 接口和抽象方法 /*** 獲取購物車中商品的數據總數* return 購物車中商品的數據總數*/Cart findByCid(Integer cid); 1.3 xml文件中sql映射…

零基礎學習Redis(13) -- Java使用Redis命令

上期我們學習了如何使用Java連接到redis&#xff0c;這期我們來學習如何在java中使用redis中的一些命令 1. set/get 可以看到jedis類中提供了很多set方法 public static void test1(Jedis jedis) {jedis.flushAll();jedis.set("key1", "v1");jedis.set(&q…

解決OSS存儲桶未創建導致的XML錯誤

前言 在Java開發中&#xff0c;集成對象存儲服務&#xff08;OSS&#xff09;時&#xff0c;開發者常會遇到一個令人困惑的錯誤提示&#xff1a; “This XML file does not appear to have any style information associated with it. The document tree is shown below.” 此…

Spring 表達式語言(SpEL)深度解析:從基礎到高級實戰指南

目錄 一、SpEL是什么&#xff1f;為什么需要它&#xff1f; 核心價值&#xff1a; 典型應用場景&#xff1a; 二、基礎語法快速入門 1. 表達式解析基礎 2. 字面量表示 3. 屬性訪問 三、SpEL核心特性詳解 1. 集合操作 2. 方法調用 3. 運算符大全 4. 類型操作 四、Sp…

算法導論第二十四章 深度學習前沿:從序列建模到創造式AI

第二十四章 深度學習前沿&#xff1a;從序列建模到創造式AI 算法的進化正在重新定義人工智能的邊界 深度學習作為機器學習領域最活躍的分支&#xff0c;正以驚人的速度推動著人工智能的發展。本章將深入探討五大前沿方向&#xff0c;通過原理分析、代碼實現和應用場景展示&…

抽象工廠設計模式

1.問題背景&#xff1a; 現在有兩個產品(Product)分別是手機殼(PhoneCase)和耳機(EarPhone)&#xff0c;但是他們會來自于各個生產廠商&#xff0c;比如說Apple和Android等等 那么至少會有四個產品&#xff0c;分別是安卓手機殼&#xff0c;安卓耳機&#xff0c;蘋果手機殼&a…

GESP 3級 C++ 知識點總結

根據GESP考試大綱 (2024年3月版)&#xff0c;幫大家總結一下GESP 3級 C語言的知識點&#xff1a; 核心目標&#xff1a; 掌握C程序的基本結構&#xff0c;理解并能運用基礎的編程概念解決稍復雜的問題&#xff0c;重點是函數、一維數組和字符串處理。 主要知識點模塊&#x…

騰訊云主動型云蜜罐技術解析:云原生威脅狩獵的革新實踐(基于騰訊云開發者社區技術網頁與行業實踐)

摘要 騰訊云主動型云蜜罐&#xff08;Active Cloud Honeypot&#xff09;通過動態誘捕機制和云原生架構&#xff0c;在威脅檢測效率、攻擊鏈還原深度、防御聯動實時性等維度實現突破。相較于傳統蜜罐&#xff0c;其核心優勢體現在&#xff1a; 部署效率&#xff1a;分鐘級完成…

企業微信wecom/jssdk的使用(入門)

概述 記錄一個企業微信jssdk的使用&#xff0c;因為要用到圖片上傳、掃描二維碼等工具。項目是uniapp開發的h5項目&#xff0c;fastadmin&#xff08;thinkphp5&#xff09;后端 先看官方文檔 https://developer.work.weixin.qq.com/document/path/90547#%E5%BA%94%E7%94%A8…

大零售生態下開源鏈動2+1模式、AI智能名片與S2B2C商城小程序的協同創新研究

摘要&#xff1a;在流量紅利消退、零售形態多元化的背景下&#xff0c;大零售生態成為商業發展的新趨勢。本文聚焦開源鏈動21模式、AI智能名片與S2B2C商城小程序在零售領域的協同應用&#xff0c;探討其如何打破傳統零售邊界&#xff0c;實現流量變現與用戶資產化。研究表明&am…

Scrapy全流程(一)

創建一個scrapy項目:scrapy startproject mySpider 生成一個爬蟲:scrapy genspider douban movie.douban.com 提取數據:完善spider&#xff0c;使用xpath等方法 保存數據:pipeline中保存數據 2 創建scrapy項目 下面以抓取豆瓣top250來學習scrapy的入門使用&#xff1a;豆瓣…