文章目錄
- qt常用控件--02
- toolTip屬性
- focusPolicy屬性
- styleSheet屬性
- 補充知識點
- 按鈕類控件
- QPushButton
- 結語
很高興和大家見面,給生活加點impetus!!開啟今天的編程之路!!
今天我們進一步c++11中常見的新增表達
作者:?( ‘ω’ )?260
我的專欄:qt,Linux,C++進階,C++初階,數據結構初階,題海探驪,c語言
歡迎點贊,關注!!
qt常用控件–02
toolTip屬性
api接口:
toolTip一般是給用戶看的,所以一般不會使用到獲取這個toolTip,如果非要獲取的話,刪掉set即可
我們直接來來看代碼:
再來看效果:
focusPolicy屬性
在講解這個游戲之前,請問有多少同學是玩過部落沖突這個游戲的,當我們需要去攻打敵方部落的某個建筑的時候,此時我們需要點擊這個建筑,我們的小兵就會去攻打這個建筑,這里過程可以理解為獲取控件的焦點
api接口:
這個屬性是來設置控件獲取焦點的方式~~
至于為什么需要獲取到焦點呢?
因為控件必須先要獲取到焦點,用戶才能夠對控件進行操作
這里我們就需要來談一下focusPolicy這個類了,focusPolicy仍然是qt中內置的類,其中包含:
我們直接來寫一個代碼來演示:
我們這里來創建一個用戶可以進行輸入的對話框:
因為默認的枚舉類型就是strongFocus,默認鼠標和制表符都可以來修改焦點。這點,我們可以在qt designer中的控件屬性中能夠看到~~
如果此時我們對代碼稍加修改,就可以對控件獲取焦點的策略做出一定改變
styleSheet屬性
通過ccs來控制控件樣式,這里的樣式包括顏色,字體,大小等等,ccs是屬于前端技術的一種,主要是用來描述控件的樣式。
主要接口即:setsStyleSheet()
設置控件的樣式其實還有一種圖形化界面的方式,主要是使用控件的編輯樣式表
步驟:qt designer右擊控件 ->找到改變樣式表->使用鍵值對的方式修改控件樣式
描述控件的方式:鍵與值之間使用 :(英文下的冒號)鏈接,鍵值對之間使用 ;(英文狀態下的分號鏈接)
關于如何形容字體(因為這里是Label),在前面已經有講解了,忘記了記得復習~~
接下倆我們使用代碼的方式來描寫這個,我們現將這個編輯樣式表復原。
來看代碼:
結果仍然適合上面的結果一樣的:
補充知識點
我們來使用一個示例來講解,我們來實現一個夜間模式的切換,來看代碼:
來看實現的結果:
我們發現:日間模式跟我們初始的顏色不一樣,我們日間模式是純白色,但是最初顏色是白里透灰,這個涉及計算機中的顏色表示~~
首先,計算機中的顏色有多少種?答案是無數種
計算機中的三原色:紅,綠,藍,所以計算機中使用RGB來表示顏色(光的三原色)
我們可以使用這種表示方式來表示任何顏色,按照不同的比例,可以制造不同的顏色,所以計算機中的顏色有無數種。
首先,計算機中我們使用一個字節來表示光的三原色中的一種,范圍是0~255,所以就有兩種方式來表示一種顏色:
第一種:rgb(a,b,c)(a,b,c均是范圍內的數字),來表示三種顏色的不同比例,如rgb(0,0,0)(黑色)
第二種:十六進制表示(大于0,小于FF),4個比特位表示一個16進制位,如:000000(黑色,也可以寫為000),FF00FF
那么最后一個問題來了,怎么去獲取這個顏色的比例呢?
使用取色器,在qq截圖中內置了取色器,快捷鍵是ctrl+alt+a,隨后鼠標對準想要的顏色,這樣可以看到對應的rgb比例:
當我們清楚知道了初始界面的比例之后,就能夠修改夜間模式的白色了:
按鈕類控件
QPushButton
繼承關系如下:
我們在控件的屬性中也能夠看到這一個繼承關系:
因為繼承關系,前面我們所提到的QWidget的屬性QPushButton也能夠使用~~
接下來我們其實介紹的是QAbstractButton的屬性:
接下來我們可以使用一個實例來練習上面的接口~~
我們實現上下左右的移動(這次我們加上圖片和快捷鍵的方式)
1:給按鈕添加圖片
我們仍然是在阿里巴巴矢量圖標庫中尋找圖片
這里我們使用的還是qrc機制:先添加一個前綴,隨后添加圖片文件,路徑不要有中文,注意圖片在同級路徑或者下一次路徑中
隨后我們設置Icon設置圖片:
2:給按鈕添加快捷鍵
我們先給按鈕設置對應的槽函數,這個也十分簡單:
隨后我們可以測試一下,我們發現此時使用鼠標點擊可以上下移動,但是只能夠點一次,移動一次,所以我們需要用到上面的接口:
我們在Widget構造函數添加上這個并設置為true:
此時我們如果使用鼠標一直點擊,即一直壓下,target會一直移動。即連發屬性。
接下來我們設置快捷鍵的方式,我們使用setShortCut接口:
這里我們也有兩種方式來確定快捷鍵:
1:直接拼寫英文:
如果我們想使用多個快捷鍵來處理一個操作呢?我們在其中加上一個+號即可:
但是這種其實有種問題,如果我們拼錯了呢?而且還沒有任何的報錯
所以我們就要用到第二種方式,我們來使用qt庫中定義的宏來實現。
2:使用qt內置宏:
如果想要使用多個按鍵處理同一個操作,同理,還是要使用+號,
形如:
隨后我們發現里面使用快捷鍵是默認就是連發的,即setAutoRepeate默認就是true的~~
結語
今天的內容就分享完了,不足之處歡迎大家留言指出,感謝大家支持
鍥而不舍,金石可鏤!!加油!!