Q:PaintEvent IOS пиксельная дуга
Итак, у меня есть Q::Painter
который рисует какой-то круг. На окнах он отлично рисует круг, а на 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);
}
1 ответ
Ты используешь setRenderHints()
неправильно. Измените это на:
painter.setRenderHints(QPainter::Antialiasing | QPainter::HighQualityAntialiasing | QPainter::SmoothPixmapTransform);