以下代码在 a 周围绘制文本QPainterPath
:
QString text = "Short text";
QPainterPath rawPath;
// fill path ...
while (...)
{
double percent = ...;
double angle = rawPath.angleAtPercent(percent);
QPointF point = rawPath.pointAtPercent(percent);
m_painter.save();
m_painter.translate(point);
m_painter.rotate(-angle);
// Version 1:
//m_painter.drawText(0, 0, text.at(currentChar));
// Version 2:
QPainterPath p2;
p2.addText(0, 0, font, text.at(currentChar));
m_painter.drawPath(p2);
m_painter.restore();
}
图形结果符合预期,但版本 1 和版本 2 的性能都很差。瓶颈是QPainter::drawText()
各自的QPainterPath::addText()
方法。有没有更有效的方法在路径周围绘制文本?
问候,