QStyle自定义重绘QRubberBand控件
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                QStyle自定义重绘QRubberBand控件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                簡介: 根據QStyle的繼承關系和重繪原理;通過實現一個繼承QCommonStyle類的實現,實現自己的自定義控件QRubberBand控件。
文章目錄
- 本博文的簡述or解決問題?
 - 運行效果:
 - QRubberBand重繪:
 - 開心分享:
 - 系列地址:
 
本博文的簡述or解決問題?
? 詳情: 見簡介
編程環境: deepin 15.11 x64 專業版 Kernel: x86_64 Linux 4.15.0-30deepin-generic
編程軟件: Qt Creator 4.8.2 (Enterprise), Qt 5.9.8、
運行效果:
先上一張最終的重繪運行效果圖:
QRubberBand重繪:
這幾就不翻開官方簡介了,話說初次看到QRubberBand這個名字的時候,我一臉的懵逼。這個控件,我怎么聽都沒有聽說過,更沒有見過。
但是: 如果有人和你講,這就是windows的這個東西,那就很大家都見過了,就是多選文件時候的那個高亮矩形,如下圖
繪畫思路:
- 對應的重載函數里面,case 這個控件,然后繪畫一個矩形(其畫刷和邊框的顏色是不一樣的)
 
代碼如下:
QPainter *p, const QWidget *w) const {switch (element) {case CE_RubberBand: {if (const QStyleOptionRubberBand *rubber = qstyleoption_cast<const QStyleOptionRubberBand *>(opt)) {QColor color = opt->palette.highlight().color();color.setAlphaF(0.1);p->setBrush(color);color.setAlphaF(0.2);p->setPen(QPen(color, 1));p->drawRect(opt->rect.adjusted(0, 0, -1, -1));return;}break;}default:break;}QCommonStyle::drawControl(element, opt, p, w); }開心分享:
因為有著許許多多的熱心網友的無私分享,從他們的博客中學習成長,學會很多,故也不辭辛苦也將自己的項目或經驗整理成博客的形式,也提供給一起大家學習探討與交流
系列地址:
QtExamples
歡迎 star 和 fork 這個系列的 QT / DTK 學習,附學習由淺入深的目錄。
總結
以上是生活随笔為你收集整理的QStyle自定义重绘QRubberBand控件的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: ffmeg学习
 - 下一篇: 四暗四国军棋之捉放曹