#include "ScrollBar.h" #include #include #include "function/function_global.h" void ScrollBar::Style::drawComplexControl(ComplexControl control, const QStyleOptionComplex* option, QPainter* painter, const QWidget* widget) const { painter->fillRect(widget->rect(), Qt::white); SubControls sub = option->subControls; if(CC_ScrollBar != control){ return; } const QStyleOptionSlider* sopt = qstyleoption_cast(option); // 前面的矩形 QRect front = subControlRect(control, sopt, QStyle::SC_ScrollBarSubLine, widget); QRect back = subControlRect(control, sopt, QStyle::SC_ScrollBarAddLine, widget); // painter->drawRect(leftIndicatorRect); // painter->drawRect(rightIndicatorRect); // qDebug() << r2; // painter->drawRect(r2); // if(sub & QStyle::SC_ScrollBarSubLine) { // QStyleOptionComplex* opt = const_cast(option); // opt->subControls = QStyle::SC_ScrollBarSubLine; // QProxyStyle::drawComplexControl(control, option, painter, widget); // return; // } // if(sub & QStyle::SC_ScrollBarSubLine) { // QStyleOptionComplex* opt = const_cast(option); // opt->subControls = QStyle::SC_ScrollBarSubLine; // QProxyStyle::drawComplexControl(control, option, painter, widget); // return; // } QRect scrollBarRect = sopt->rect; painter->setPen(Qt::NoPen); painter->setBrush(Qt::blue); //painter->drawRoundedRect(scrollBarRect, 6, 6); QRectF sliderRect = subControlRect(control, sopt, QStyle::SC_ScrollBarSlider, widget); painter->setBrush(base); painter->drawRoundedRect(sliderRect, 6, 6); }