问:PaintEvent IOS像素弧
所以我有一个Q::Painter
绘制一些圈子。 在Windows上,它画的圆完美,但在iOS上它像素化:
这是非像素化的图像:
如果有人能帮助我解决这个问题,我将会非常高兴。 代码是完全一样的,但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); }
你正在使用setRenderHints()
错误。 将其更改为:
painter.setRenderHints(QPainter::Antialiasing | QPainter::HighQualityAntialiasing | QPainter::SmoothPixmapTransform);