【问题标题】:Q:PaintEvent IOS pixelating arcQ:PaintEvent IOS像素化弧线
【发布时间】:2015-04-06 07:14:32
【问题描述】:

所以我有一个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);

} 

【问题讨论】:

  • 您应该在问题中提供您的代码,以帮助其他人识别问题。
  • 我在我的问题中提供了它。我认为现在更好:)

标签: ios qt qpainter paintevent


【解决方案1】:

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

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

【讨论】:

  • 我改了,但还是一样……像素化了。
  • 非常感谢,不知道什么时候能修好?
  • 引用:“可能会在 5.4 中改变”.
猜你喜欢
  • 1970-01-01
  • 2018-03-31
  • 2012-08-10
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多