Qt并没有相关api直接绘制弧形文字,但提供了曲线绘制相关类,所以只能另辟蹊径,使用QPainterPath先生成曲线,然后通过曲线上的点来定位每个文字并draw出来。
QML具体做法为从QQuickPaintedItem继承,在派生类中实现paint函数
代码如下:
void ViewItem::paint(QPainter *painter)
{
painter->setRenderHint(QPainter::Antialiasing);
QRectF rect(200, 200, 400, 300);
painter->drawRect(rect);
auto arcRect = rect;
arcRect.setHeight(rect.height(