本系列主要使用Qt painter來實現一些基礎控件。主要是對平時自行編寫的一些自定義控件的總結。c++
爲了簡潔。低耦合,咱們儘可能不使用圖片,qrc,ui等文件,而只使用c++的.h和.cpp文件。git
因爲我的水平有限,學習Qt時間不長,因此代碼中出現BUG,不夠優雅以及有待改進部分,還請見諒和提出意見。github
本項目全部代碼在Qt5.10以上均測試經過,理論上Qt 5版本應該都支持。less
本系列全部程序,已經放在了github的項目上,項目地址:https://github.com/LOMOoO/CustomControls-Qt學習
(二)Loading加載動畫控件測試
示例如上,固然實際效果是動態的。動畫
控件的特色ui
1.純QPaint繪製,不包括圖片等文件;this
2.可以自適應大小,不須要手動調整;spa
固然你也能夠控制其餘屬性:
//設置圓點個數 void setDotCount(int); //設置點顏色 void setDotColor(const QColor&); //開始 void start(); //設置圓點最大直徑 void setMaxDiameter(float); //設置圓點最小直徑 void setMinDiameter(float);
通常的lloading動畫是獨立於其餘界面的,因此這裏咱們作了簡單的控制,當控件沒有父級對象時,設置背景透明
//設置背景透明 if(!this->parent()) { this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint); this->setAttribute(Qt::WA_TranslucentBackground, true); }
若是你還須要自定義圓點的樣式,好比將其設置爲正方形,漢字,你也能夠參考源代碼進行修改。更多部分,還請參考github上的源代碼。