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的安裝包可以私信我,你們的支持是博主堅持創作的動力!💪💪