QFrame的setFrameStyle函數 && QPalette設置背景


QFrame penColorFrame = new QFrame; penColorFrame->setFrameStyle(QFrame::Panel | QFrame::Sunken);//Panel - QFrame畫一個平板使內容看起來凸起或者凹陷, //QFrame::Sunken - 框架和內容看起來凹陷 
penColorFrame->setAutoFillBackground(true); penColorFrame->setPalette(QPalette(Qt::blue));//設置默認顏色為藍色

下面是setFrameStyle函數函數不同參數時候的形狀:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

注意:

1、設置背景范圍的時候如果需要充滿整個窗口最好使用this->rect(),因為我看到很多人在使用QRect(0, 0, 400, 400)之類的語句,那么如果窗口大小改變了呢?此句是不是要跟着變呢?
2、如果需要背景圖片或者背景色隨可以發生改變時,也就是所謂的換膚功能,則采用paintEvent的方式,在需要改變的時候使用update()來進行更新。
3、this->setAutoFillBackground(true)又讓我想起了tr(),被很多人濫用。這句話在什么時候使用呢?不妨采用QPalette設置背景的方式加上與去掉這句話對比一下(在有父窗口的情況下使用)。如果這個QWidget直接show,則有背景色,如果放到一個父窗口中,就沒有效果。添加該句即可!

 

 

參考鏈接:https://blog.csdn.net/xjcwzp/article/details/95311544

     http://blog.sina.com.cn/s/blog_a6fb6cc90101f9ec.html#cmt_52217EF6-7F000001-CC2A2908-8F3-8A0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM