本系列主要使用Qt painter來實現一些基礎控件。主要是對平時自行編寫的一些自定義控件的總結。
為了簡潔。低耦合,我們盡量不使用圖片,qrc,ui等文件,而只使用c++的.h和.cpp文件。
由於個人水平有限,學習Qt時間不長,所以代碼中出現BUG,不夠優雅以及有待改進部分,還請見諒和提出意見。
本項目所有代碼在Qt5.10以上均測試通過,理論上Qt 5版本應該都支持。
本系列所有程序,已經放在了github的項目上,項目地址:https://github.com/LOMOoO/CustomControls-Qt
(二)Loading加載動畫控件
示例如上,當然實際效果是動態的。
控件的特點
1.純QPaint繪制,不包括圖片等文件;
2.能夠自適應大小,不需要手動調整;
當然你也可以控制其他屬性:
//設置圓點個數 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上的源代碼。