Exemplo n.º 1
0
void Color_Wheel::render_ring()
{

    hue_ring = QPixmap(outer_radius()*2,outer_radius()*2);
    hue_ring.fill(Qt::transparent);
    QPainter painter(&hue_ring);
    painter.setRenderHint(QPainter::Antialiasing);
    painter.setCompositionMode(QPainter::CompositionMode_Source);


    const int hue_stops = 24;
    static QConicalGradient gradient_hue(0, 0, 0);
    if ( gradient_hue.stops().size() < hue_stops )
    {
        for ( double a = 0; a < 1.0; a+=1.0/(hue_stops-1) )
        {
            gradient_hue.setColorAt(a,QColor::fromHsvF(a,1,1));
        }
        gradient_hue.setColorAt(1,QColor::fromHsvF(0,1,1));
    }

    painter.translate(outer_radius(),outer_radius());

    painter.setPen(Qt::NoPen);
    painter.setBrush(QBrush(gradient_hue));
    painter.drawEllipse(QPointF(0,0),outer_radius(),outer_radius());

    painter.setBrush(Qt::transparent);//palette().background());
    painter.drawEllipse(QPointF(0,0),inner_radius(),inner_radius());

}
Exemplo n.º 2
0
//! [3]
void Enemy::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *)
{
    //if (painter->paintEngine()->type() == QPaintEngine::OpenGL2 || painter->paintEngine()->type() == QPaintEngine::OpenGL){
    //    //qDebug()<<"OpenGL reporting!";
    //}
    // QPainter: (uses OpenGL for rectangles, ellipses etc. if above if-clause is true..?)
    // Body
    //painter->setBrush(myColour);
    static QLinearGradient hullGradient(0,-25,0,5);
    hullGradient.setColorAt(0, Qt::white);
    hullGradient.setColorAt(1, myColour);
    painter->setBrush(QBrush(hullGradient));
    // painter->drawEllipse(-10, -20, 20, 40);
    static const QPointF hullPoints[3] = {
        QPointF(-5.0, 10),
        QPointF(0, -30),
        QPointF(5, 10)
    };
    painter->drawPolygon(hullPoints, 3);

    // "Scanner" eye
    painter->setBrush(Qt::red);
    painter->drawEllipse(-4, -20, 8, 8);

    // Guns
    painter->setBrush(Qt::gray);
    painter->drawRect(-16,-12,4,8);
    painter->drawRect(12,-12,4,8);
    //  Pupil of "Scanner"
    qreal dx = ::sin(Creature::myAngle) * 10;
    myEyeDirection = (qAbs(dx / 5) < 1) ? 0 : dx / 5;
    painter->drawEllipse(QRectF(-2.0 + 2*myEyeDirection, -22, 4, 4));

    // Wings
    //painter->setBrush(myIsCaught ? Qt::red : Qt::darkYellow);
    static QConicalGradient wingGradient(0,12,180);
    wingGradient.setColorAt(0, Qt::white);
    wingGradient.setColorAt(1, Creature::myIsCaught ? Qt::red : Qt::darkYellow); //Qt::gray);
    painter->setBrush(QBrush(wingGradient));
    //1st way of implementing the wings
    static const QPointF wingPoints[4] = {
        QPointF(0, 12),
        QPointF(-25, -14),
        QPointF(0, 4),
        QPointF(25, -14)
    };
    painter->drawPolygon(wingPoints, 4);
}
Exemplo n.º 3
0
void ParupaintColorWheel::paintEvent(QPaintEvent * event)
{
	// QSS won't do much stuff.
	
	const qreal max_ratio = (qreal)(this->rect().width() > this->rect().height() ? this->rect().height() : this->rect().width())/2.0;
	QPoint rp = QPoint(max_ratio - wheel_width/2, max_ratio - wheel_width/2);
	QRect rr = QRect(this->rect().center() - rp, 
			this->rect().center() + rp);

	QPainter paint(this);
	QConicalGradient gradient;
	gradient.setCenter(this->rect().center());
	gradient.setAngle(-90);
	for(qreal i = 0; i <= 1; i += 0.1){
		gradient.setColorAt(i, QColor::fromHslF(1.0 - i, 1, 0.5));
	}
	QPen pen(QBrush(gradient), wheel_width);
	paint.setPen(pen);

	paint.drawArc(rr, 0, 360 * 16);

	qreal ttf = ((qreal(this->value()) / qreal(this->maximum()))*(M_PI*2) + M_PI/2);
	QPoint pp = this->rect().center() + QPoint(qCos(ttf) * (max_ratio), qSin(ttf) * (max_ratio));

	QPen pen2(Qt::black);
	pen2.setWidth(2);
	paint.setPen(pen2);
	paint.drawLine(this->rect().center(), pp);
	
// 	this->QDial::paintEvent(event);
}
void QRoundProgressBar::rebuildDataBrushIfNeeded() {
    if (m_rebuildBrush) {
        m_rebuildBrush = false;

        QConicalGradient dataBrush;
        dataBrush.setCenter(0.5, 0.5);
        dataBrush.setCoordinateMode(QGradient::StretchToDeviceMode);

        // invert colors
        for (int i = 0; i < m_gradientData.count(); i++) {
            dataBrush.setColorAt(1.0 - m_gradientData.at(i).first, m_gradientData.at(i).second);
        }

        // angle
        dataBrush.setAngle(m_nullPosition);

        QPalette p(palette());
        p.setBrush(QPalette::Highlight, dataBrush);
        setPalette(p);
    }
}
Exemplo n.º 5
0
QgsColorWheel::QgsColorWheel( QWidget *parent )
    : QgsColorWidget( parent )
    , mMargin( 4 )
    , mWheelThickness( 18 )
    , mClickedPart( QgsColorWheel::None )
    , mWheelImage( nullptr )
    , mTriangleImage( nullptr )
    , mWidgetImage( nullptr )
    , mWheelDirty( true )
    , mTriangleDirty( true )
{
  //create wheel hue brush - only do this once
  QConicalGradient wheelGradient = QConicalGradient( 0, 0, 0 );
  int wheelStops = 20;
  QColor gradColor = QColor::fromHsvF( 1.0, 1.0, 1.0 );
  for ( int pos = 0; pos <= wheelStops; ++pos )
  {
    double relativePos = ( double )pos / wheelStops;
    gradColor.setHsvF( relativePos, 1, 1 );
    wheelGradient.setColorAt( relativePos, gradColor );
  }
  mWheelBrush = QBrush( wheelGradient );
}