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()); }
//! [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); }
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); } }
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 ); }