2015-04-06 5 views
0

Итак, у меня есть Q::Painter, который рисует какой-то круг. На окнах рисует круг идеальный, но на прошивкой речь идет о некачественно:Q: PaintEvent пиксельная дуга IOS

enter image description here

и это не мозаичное изображение:

enter image description here

Я буду очень greatfull, если кто-то может помочь мне с Эта проблема. Код точно такой же, но IOS делает это плохо ...

Вот мой код:

void CQtPercentCircleWidget::paintEvent(QPaintEvent *pe) 
{ 
    int circleX = parentWidget()->width()/2 - m_iCircleWidth/2; 
    int circleY = m_iPenWidth; 
    QRectF normalCircle(circleX, circleY, m_iCircleWidth, m_iCircleHeight); 
    QPainter painter(this); 
    painter.setRenderHints((QPainter::Antialiasing,QPainter::HighQualityAntialiasing), QPainter::SmoothPixmapTransform); 
    painter.setPen(m_qpenNormalColor); 
    painter.drawEllipse(normalCircle); 
    QRectF activeCircle(circleX, circleY, m_iCircleWidth, m_iCircleHeight); 
    int startAngle = 90 * 16; 
    double dProgress = (double)m_iProgressPercent; 
    int currentAngle = (dProgress/100) * (360 * 16); 
    painter.setPen(m_qpenCurrectPenColor); 
    painter.drawArc(activeCircle, startAngle, currentAngle); 

} 
+0

Вы должны указать свой код в своем вопросе, чтобы помочь другим определить проблему. – Nejat

+0

Я предоставляю его в своем вопросе. Теперь лучше, я думаю :) – ganchev

ответ

0

Вы используете setRenderHints() неправильно. Измените его на:

painter.setRenderHints(QPainter::Antialiasing | QPainter::HighQualityAntialiasing | QPainter::SmoothPixmapTransform); 
+0

Я изменил его, но он все тот же ... pixelated. – ganchev

+0

Это ошибка, проверьте [QTBUG-35271] (https://bugreports.qt.io/browse/QTBUG-35271). – svlasov

+0

Большое спасибо, знаете ли вы, когда оно будет исправлено? – ganchev