{
Q_UNUSED(event)
if (!isVisible())
return;
painter.begin(this);
painter.setPen(Qt::blue);
painter.setBrush(Qt::SolidPattern);
QRect rect
(50,
50,
240,
100);
painter.
setRenderHint(QPainter::Antialiasing,
true);
painter.drawRoundedRect(rect, 25, 25, Qt::RelativeSize);
int spacing = 30;
int labelHeight = 0;
int valueBarWidth = 300;
// Calculating the maximum string size
int valueBarX = spacing;
int valueBarBottomY = 0;
QSizeF originalSize
= m_rendererValueBarTop
->defaultSize
();
QSizeF targetSize
= originalSize;
targetSize.
scale(QSizeF(valueBarWidth, originalSize.
height()), Qt
::KeepAspectRatio);
qreal scaleRatio = targetSize.width() /
originalSize.width();
QSize valueBarBottomSize
= m_rendererValueBarBottom
->defaultSize
() * scaleRatio;
valueBarBottomY = height() - labelHeight - 20
- valueBarBottomSize.height();
QSize(valueBarWidth, valueBarBottomY
));
m_rendererValueBar->render(&painter, m_valueBarRightRect);
int filledPixels = ((double)value()) / maximum() * m_valueBarRightRect.height();
QRect filledRect
= m_valueBarRightRect;
filledRect.setTop(filledRect.bottom() - filledPixels);
m_rendererValueBarFilled->render(&painter, filledRect);
painter.end();
}
void QtMultiSlider::paintEvent(QPaintEvent * event)
{
Q_UNUSED(event)
if (!isVisible())
return;
QPainter painter;
painter.begin(this);
painter.setPen(Qt::blue);
painter.setBrush(Qt::SolidPattern);
QRect rect(50, 50, 240, 100);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.drawRoundedRect(rect, 25, 25, Qt::RelativeSize);
int spacing = 30;
int labelHeight = 0;
int valueBarWidth = 300;
// Calculating the maximum string size
int valueBarX = spacing;
int valueBarBottomY = 0;
QSizeF originalSize = m_rendererValueBarTop->defaultSize();
QSizeF targetSize = originalSize;
targetSize.scale(QSizeF(valueBarWidth, originalSize.height()), Qt::KeepAspectRatio);
qreal scaleRatio = targetSize.width() /
originalSize.width();
QSize valueBarBottomSize = m_rendererValueBarBottom->defaultSize() * scaleRatio;
valueBarBottomY = height() - labelHeight - 20
- valueBarBottomSize.height();
m_valueBarRightRect = QRect(QPoint(valueBarX, 20),
QSize(valueBarWidth, valueBarBottomY));
m_rendererValueBar->render(&painter, m_valueBarRightRect);
int filledPixels = ((double)value()) / maximum() * m_valueBarRightRect.height();
QRect filledRect = m_valueBarRightRect;
filledRect.setTop(filledRect.bottom() - filledPixels);
m_rendererValueBarFilled->render(&painter, filledRect);
painter.end();
}
To copy to clipboard, switch view to plain text mode
Bookmarks