diff --git a/src/exquisite/qqtbodyselectedstyle.h b/src/exquisite/qqtbodyselectedstyle.h index c2156175..b4cef699 100644 --- a/src/exquisite/qqtbodyselectedstyle.h +++ b/src/exquisite/qqtbodyselectedstyle.h @@ -7,7 +7,10 @@ /** * @brief The QQtBodySelectedStyle class - * 窗体选中效果 + * 窗体选中效果。 + * + * 选中效果的绘制无论如何都会绘制在QQtWidget里面图片的下方 + * 在QQtExquisite里面提供了QQtSelectedStyle类,针对QQtMultiPageWidget设置选中效果。 */ class QQTSHARED_EXPORT QQtBodySelectedStyle : public QObject { diff --git a/src/exquisite/qqtshadowwidget.cpp b/src/exquisite/qqtshadowwidget.cpp index 52f5f2fd..c3e66e69 100644 --- a/src/exquisite/qqtshadowwidget.cpp +++ b/src/exquisite/qqtshadowwidget.cpp @@ -55,21 +55,39 @@ void QQtShadowWidget::drawShadowPlanB() void QQtShadowWidget::drawShadowPlanC () { - QPainterPath path; - path.setFillRule ( Qt::WindingFill ); - path.addRect ( 10, 10, this->width() - 20, this->height() - 20 ); QPainter painter ( this ); painter.setRenderHint ( QPainter::Antialiasing, true ); - painter.fillPath ( path, QBrush ( Qt::white ) ); + //QPainterPath path; + //path.setFillRule ( Qt::WindingFill ); + //path.addRoundRect ( 10, 10, this->width() - 20, this->height() - 20, 3 ); + //painter.setRenderHint ( QPainter::Antialiasing, true ); + //pline() << painter.background().color(); + //painter.fillPath ( path, painter.background().color() ); + + //50这里没用 QColor color ( 0, 0, 0, 50 ); - for ( int i = 0; i < 10; i++ ) + //40代表了横跨幅 + int j = 40; + for ( int i = 0; i < j; i++ ) { QPainterPath path; path.setFillRule ( Qt::WindingFill ); - path.addRect ( 10 - i, 10 - i, this->width() - ( 10 - i ) * 2, this->height() - ( 10 - i ) * 2 ); - color.setAlpha ( 150 - qSqrt ( i ) * 50 ); - painter.setPen ( color ); - painter.drawPath ( path ); + //10就是margin。xxx + //画的圈子越来越大 + path.addRoundRect ( j - i, j - i, this->width() - ( j - i ) * 2, this->height() - ( j - i ) * 2, 3 ); + //颜色越来越浅。 初始数字越小,效果越好,越精细。 + qreal alpha = 10 - ( qreal ) i * 1 / ( j / 30 ); //150 - qSqrt ( i ) * 50 ; + //无论如何不能过滤,都是细线。 + //if ( ( ( int ) ( alpha / 10 ) % 2 ) == 1 ) + // continue; + if ( alpha >= 0 ) + { + color.setAlpha ( alpha ); + //pline() << alpha; + painter.setPen ( color ); + painter.drawPath ( path ); + } } + }