2015-04-06 41 views
0

所以我有一个Q::Painter画了一些圈。在Windows上画的圆圈完美,但在iOS上说到像素化:问: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 2015-04-06 07:30:00

+0

我在我的问题中提供它。现在我觉得更好:) – ganchev 2015-04-06 12:20:44

回答

0

您正在使用setRenderHints()错误。将其更改为:

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

我改变了它,但它仍然是相同的...像素化。 – ganchev 2015-04-09 09:15:30

+0

这是一个错误,请检查[QTBUG-35271](https://bugreports.qt.io/browse/QTBUG-35271)。 – svlasov 2015-04-09 09:18:28

+0

非常感谢,你知道什么时候它会被修复吗? – ganchev 2015-04-09 13:48:42