Как нарисовать специальный круг в Qt5?

Я хочу нарисовать специальный сегментированный круг, как показано на рисунке ниже.

Но я не могу понять, как нарисовать дугу или эллипс, используя setDashPattern,

Образ:

Сначала я подумал, что будет просто нарисовать цветной круг и нарисовать прозрачный прямоугольник или линию, чтобы покрыть его. Но это только прошло, хотя...

Во-вторых, я попробовал приведенный ниже код,

QPicture pi;
QPainter p(&pi);
QPen pen(Qt::red);

qreal space = 6;
qreal ine = 99;
pen.setDashPattern(QVector<qreal>() <<
line << space << line << space <<line << space);

p.drawRect(0,50, 100, 100);
p.end();

Но это не то, чего я хочу.

Кто-нибудь знает, как рисовать такие кольца?

1 ответ

Я предлагаю установить путь к клипу художника и нарисовать два полных круга.

Вы можете создать QPainterPath это покрывает области, где круги должны быть нарисованы (черные области). Чем установить этот путь к художнику, используя QPainter::setClipPath(), Наконец нарисуйте два круга.

Увидеть:

Другие вопросы по тегам