paint progress using different color in slider
This commit is contained in:
parent
6a67b00115
commit
6b57dd87dd
|
@ -56,6 +56,7 @@ void Handle::mousePressEvent(QMouseEvent *event)
|
||||||
void Handle::mouseMoveEvent(QMouseEvent *event)
|
void Handle::mouseMoveEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
setRelativePosition(event->globalPos());
|
setRelativePosition(event->globalPos());
|
||||||
|
_slider->update();
|
||||||
}
|
}
|
||||||
|
|
||||||
Slider::Slider(QWidget *parent)
|
Slider::Slider(QWidget *parent)
|
||||||
|
@ -86,6 +87,14 @@ void Slider::paintEvent(QPaintEvent *event)
|
||||||
brush.setColor(QColor(0, 0, 0));
|
brush.setColor(QColor(0, 0, 0));
|
||||||
painter.fillRect(r, brush);
|
painter.fillRect(r, brush);
|
||||||
|
|
||||||
|
painter.save();
|
||||||
|
brush.setColor(QColor(255, 0, 0));
|
||||||
|
const QPoint p = Qt::Vertical == _orientation
|
||||||
|
? QPoint(width(), _handle->y())
|
||||||
|
: QPoint(_handle->x(), height());
|
||||||
|
painter.fillRect(r.intersected(QRect(QPoint(0, 0), p)), brush);
|
||||||
|
painter.restore();
|
||||||
|
|
||||||
painter.drawRect(rect().adjusted(0, 0, -1, -1));
|
painter.drawRect(rect().adjusted(0, 0, -1, -1));
|
||||||
|
|
||||||
QWidget::paintEvent(event);
|
QWidget::paintEvent(event);
|
||||||
|
@ -102,6 +111,7 @@ void Slider::mousePressEvent(QMouseEvent *event)
|
||||||
_handle->setOffset((event->pos() - QPoint(s.width()/2, s.height()/2)) - event->globalPos());
|
_handle->setOffset((event->pos() - QPoint(s.width()/2, s.height()/2)) - event->globalPos());
|
||||||
_handle->setRelativePosition(event->globalPos());
|
_handle->setRelativePosition(event->globalPos());
|
||||||
_drag = true;
|
_drag = true;
|
||||||
|
update();
|
||||||
} else {
|
} else {
|
||||||
_drag = false;
|
_drag = false;
|
||||||
}
|
}
|
||||||
|
@ -112,6 +122,7 @@ void Slider::mouseMoveEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
if (_drag) {
|
if (_drag) {
|
||||||
_handle->setRelativePosition(event->globalPos());
|
_handle->setRelativePosition(event->globalPos());
|
||||||
|
update();
|
||||||
}
|
}
|
||||||
QWidget::mouseMoveEvent(event);
|
QWidget::mouseMoveEvent(event);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue