從2010年進入互聯(lián)網(wǎng)+智能手機時代以來,各種各樣的APP大行其道,手機上面的APP有很多流行的元素,開關按鈕個人非常喜歡,手機QQ、360衛(wèi)士、金山毒霸等,都有很多開關控制一些操作,在Qt widgets應用項目上,在項目中應用些類似的開關按鈕,估計也會為項目增添不少新鮮感。
總結了大部分的開關按鈕控件,基本上有兩大類,第一類是純代碼繪制,這種對代碼的掌控度要求比較高,但是靈活性比較好。第二類是貼圖,專業(yè)的美工做好的各種狀態(tài)的背景圖片,只需要用代碼將該圖片畫到界面上即可。為了能夠涵蓋兩大類的開關按鈕,特意將常見的四種類型(圓角矩形/內(nèi)圓形/外圓形/圖片)都集成到了自定義的開關按鈕中。
運行效果:
1:純代碼繪制
純代碼繪制開關按鈕,可以很靈活的設置各種顏色、間隔、文字等,還可以產(chǎn)生動畫過度的滑動效果。
產(chǎn)生滑動效果采用定時器繪制的方式,自動計算滑塊的X軸開始坐標,當滑塊的X軸開始坐標到達滑塊的X軸結束坐標時停止定時器。
void SwitchButton::updateValue() { if (checked) { if (startX < endX) { startX =