Q:PaintEvent IOS pixelating arc

a 夏天 提交于 2019-12-08 09:25:34

问题


So I have a Q::Painter which draws some circle. On windows it paints the circle perfect but on iOS it comes pixelated:

and this is non pixelated image:

I will be very greatfull if someone could help me with this problem. The code is exact the same but iOS renders it bad ...

Here is my code:

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);

} 

回答1:


You are using setRenderHints() wrong. Change it to:

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


来源:https://stackoverflow.com/questions/29466993/qpaintevent-ios-pixelating-arc

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!