Ejemplo n.º 1
0
void DoubleSlider::paintEvent(QPaintEvent* event) {
    event->accept();
    int leftMarker =  tgt::iround(minValue_ * (width()-leftOffset_-rightOffset_) + leftOffset_);
    int rightMarker = tgt::iround(maxValue_ * (width()-leftOffset_-rightOffset_) + leftOffset_);
    QPoint leftSlider[5] = {
        QPoint(leftMarker - sliderWidth_, static_cast<int>(0.3f * height())),
        QPoint(leftMarker - sliderWidth_, height()),
        QPoint(leftMarker + sliderWidth_, height()),
        QPoint(leftMarker + sliderWidth_, static_cast<int>(0.3f * height())),
        QPoint(leftMarker, 0)
    };
    QPoint rightSlider[5] = {
        QPoint(rightMarker - sliderWidth_, static_cast<int>(0.3f * height())),
        QPoint(rightMarker - sliderWidth_, height()),
        QPoint(rightMarker + sliderWidth_, height()),
        QPoint(rightMarker + sliderWidth_, static_cast<int>(0.3f * height())),
        QPoint(rightMarker, 0)
    };
    QColor sliderColor(255, 255, 255);
    QColor sliderDarkColor(75, 130, 89);
    QColor lineColor(75, 130, 89);

    QPainter paint(this);
    paint.setRenderHint(QPainter::Antialiasing);

    //draw horizontal line
    paint.setPen(lineColor);
    paint.drawLine(leftOffset_, height()/2, width()-rightOffset_, height()/2);

    //draw left marker
    paint.setBrush(sliderColor);
    paint.setPen(sliderDarkColor);

    paint.save();
    paint.drawConvexPolygon(leftSlider, 5);
    paint.restore();

    //draw right marker
    paint.save();
    paint.drawConvexPolygon(rightSlider, 5);
    paint.restore();

}
Ejemplo n.º 2
0
void ScrollBar::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event)

    Q_D(ScrollBar);

    QPainter painter(this);

    painter.fillRect(rect(), palette().color(QPalette::Window));

    int x, y, w, h;
    rect().getRect(&x, &y, &w, &h);

    QMargins margins(2, 2, 2, 2);

    QBrush brush;
    brush.setStyle(Qt::SolidPattern);
    brush.setColor(backgroundColor());
    painter.setBrush(brush);
    painter.setPen(Qt::NoPen);

    if (d->hideOnMouseOut) {
        painter.setOpacity(d->machine->opacity());
    }

    painter.drawRect(rect().marginsRemoved(margins));

    const qreal q = h / static_cast<qreal>(maximum() - minimum() + pageStep());

    QRect handle = Qt::Horizontal == orientation()
            ? QRect(sliderPosition()*q, y, pageStep()*q, h)
            : QRect(x, sliderPosition()*q, w, pageStep()*q);

    brush.setColor(sliderColor());
    painter.setBrush(brush);

    painter.drawRect(handle.marginsRemoved(margins));
}
Ejemplo n.º 3
0
	// Color Action
	ThymioColorAction::ThymioColorAction( QGraphicsItem *parent ) :
		ThymioButton(false, 1.0, true, false, parent)
	{
		setData(0, "action");
		setData(1, "color");

		QTransform transMatrix(1.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0);
		QString sliderColor("FF0000");
		
		for(int i=0; i<3; i++)
		{
			if( i == 1 ) sliderColor="00FF00";
			else if( i == 2 ) sliderColor="0000FF";

			QSlider *s = new QSlider(Qt::Horizontal);
			s->setRange(0,32);
			s->setStyleSheet(QString("QSlider::groove:horizontal { height: 14px; border: 2px solid #000000; "
							  "background: qlineargradient(x1:0, y1:0, x2:1, y2:0, stop:0 #000000, stop:1 #%0); }"
						      "QSlider::handle:horizontal { "
						      "background: #FFFFFF; "
						      "border: 5px solid #000000; width: 18px; margin: -2px 0; }").arg(sliderColor));
			s->setSliderPosition(0);

			QGraphicsProxyWidget *w = new QGraphicsProxyWidget(this);
			w->setWidget(s);
			w->setPos(27, 70+i*60);
			w->setTransform(transMatrix);
			
			
			sliders.push_back(s);
			widgets.push_back(w);
			
			connect(s, SIGNAL(valueChanged(int)), this, SLOT(valueChangeDetected()));
			connect(s, SIGNAL(valueChanged(int)), this, SLOT(updateIRButton()));
		}

	}