0

だから私は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);

} 
4

1 に答える 1

0

使い方がsetRenderHints()間違っています。次のように変更します。

   painter.setRenderHints(QPainter::Antialiasing | QPainter::HighQualityAntialiasing | QPainter::SmoothPixmapTransform);
于 2015-04-07T08:01:10.207 に答える