Как следует из названия, я ищу способ раскрасить подпути QPainterPath разными цветами, которые применяются к QGraphicsPathItem, ИЛИ просто изменить цвет вдоль PathItem с помощью QGradient QPen.
В конечном итоге я пытаюсь найти правильное решение, которое даст мне возможность визуально рисовать одну линию, которая меняет цвет в зависимости от внешних переменных.
Я использую QGraphicsScene для рисования всего.
В моем текущем решении я создал несколько QGraphicsPathItems, каждый из которых окрашен по-разному в соответствии с соответствующими QPens. Когда я получаю данные, я заполняю PainterPath, связанный с этими PathItems. Это дает мне нужные мне разноцветные линии, но линии явно разъединены.
Мне нужно либо сделать подпути QPainterPath невидимыми во время изменения цвета, либо изменить градиент, применяемый к одному PathItem. Или, может быть, есть другой подход, который мне не хватает. Любая помощь будет замечательной.
-Редактировать:
Вот как я сейчас рисую, как указано в решении моего вопроса. Опять же, обратите внимание, что я использую GraphicsScene.
Вычисления формулы подшипника в GraphicsScene дают ошибочные результаты
Как вы можете видеть, линия меняет цвет по мере ее рисования внешними переменными. Я боюсь, что Qgradient может не сработать, потому что линия не всегда будет прямой; цвет должен течь вдоль линии.
Вот что происходит:
Как видите, красная линия (PathItem) перескакивает с того места, где она была видна в последний раз, на новую позицию.
Чтобы лучше прояснить поведение, представьте, что эта линия рисуется с течением времени. Он начинается красным, вскоре устанавливается переменная, и цвет рисуемых сегментов линии меняется на оранжевый. Красные части линии остаются нетронутыми, поэтому мы можем исторически увидеть, в каком состоянии была переменная в то время. В разное время переменная корректируется, и цвет, применяемый к новым частям линии, соответственно обновляется.
Когда линия закончила рисовать, мы можем посмотреть на нее и увидеть, когда изменились цвета.
Я надеюсь, что все это имеет смысл.