QPainter在时钟上绘制数字

时间:2016-01-08 09:15:42

标签: qt c++11

QPainter graduation(this);
pen.setWidth(2);
pen.setColor(Qt::white);
graduation.setPen(pen);
graduation.setRenderHint(QPainter::HighQualityAntialiasing);
graduation.translate(center.x(), center.y());
double newRadius = (width() - 50) / 2;
//qreal angleStep = 270 / m_stepsize;
for (int i = 0; i <= m_stepsize; i++)
{
    graduation.save();
    graduation.rotate(i * angleStep + 135);
    graduation.drawLine(newRadius - 8, 0, newRadius, 0);
    graduation.drawText(newRadius - 30, 0, "100");
    graduation.restore();
}

我使用上面的代码在时钟上绘制数字。这是我得到的 enter image description here

但我想画数字看起来像下图。它绝不能颠倒。
enter image description here

任何人都可以帮助我。我理解旋转功能,这是它发生在数字上的原因,但我无法弄清楚如何修复它。

1 个答案:

答案 0 :(得分:1)

您可以手动计算位置并绘制未旋转的文本:

{{1}}