49 lines
1.9 KiB
C++
49 lines
1.9 KiB
C++
#include "ScrollBar.h"
|
|
#include <QPainter>
|
|
#include <qstyleoption.h>
|
|
#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<const QStyleOptionSlider*>(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<QStyleOptionComplex*>(option);
|
|
// opt->subControls = QStyle::SC_ScrollBarSubLine;
|
|
// QProxyStyle::drawComplexControl(control, option, painter, widget);
|
|
// return;
|
|
// }
|
|
// if(sub & QStyle::SC_ScrollBarSubLine) {
|
|
// QStyleOptionComplex* opt = const_cast<QStyleOptionComplex*>(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);
|
|
|
|
} |