public:
void paintEvent ( QPaintEvent * event );
А зачем открывать функцию для общего доступа? В виджете(базовом классе) она объявлена в защищенной секции.
void JScrollBar::paintEvent ( QPaintEvent * event )
{
QPainter painter;
painter.begin(this);
painter.setBrush(QBrush(Qt::white, Qt::SolidPattern));
painter.drawRect(QRect(0,0,20,20));
painter.end();
}
Возможно этот код что то и рисует, но в любом случае
QStyleOptionSlider option;
option.initFrom(this);
style()->drawControl(QStyle::CE_ScrollBarSlider, &option, &painter, this);
зарисовывает скролом, определенным в текущем стайле, поверх нарисованого.
Если хочешь чтоб твой скрол перенял вид от базового скрола, то нарисуй сначала базовый скрол, а потом поверх рисуй свое. Я так делал когда надо было научить кнопку(QPushButton) размещать сверху иконку, а снизу надпись.
Нарисовать базовый скрол первым можно еще так:
void JScrollBar::paintEvent ( QPaintEvent * event )
{
[b]QScrollBar::paintEvent ( event );[/b]
QPainter painter;
painter.begin(this);
painter.setBrush(QBrush(Qt::white, Qt::SolidPattern));
painter.drawRect(QRect(0,0,20,20));
painter.end();
}