Как нарисовать специальный круг в 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()
, Наконец нарисуйте два круга.
Увидеть: