Files
Radio/module/F/ScrollBar.cpp
T
2026-06-16 13:38:08 +08:00

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);
}