タイトルが示すように、QPainterPath のサブパスを QGraphicsPathItem に適用されるさまざまな色に色付けする方法を探しています。または、QGradient QPen を使用して PathItem に沿って色を変更するだけです。
最終的に、外部変数に基づいて色を変更する単一の線を視覚的に描画できるようにする正しい解決策を見つけようとしています。
QGraphicsScene を使用してすべてを描画しています。
私の現在のソリューションでは、複数の QGraphicsPathItems を作成し、それぞれの QPens でそれぞれ異なる色を付けています。データを取得すると、それらの PathItem に関連付けられた PainterPath に値を入力します。これにより、必要な多色の線が得られますが、線が目に見えて切断されています。
色の変更中に QPainterPath のサブパスを非表示にするか、単一の PathItem に適用されるグラデーションを変更できるようにする必要があります。または、私が見逃している別のアプローチがあるかもしれません。どんな助けでも素晴らしいでしょう。
-編集:
私の質問の解決策に記載されているように、これは私が現在描画を行っている方法です。ここでも、GraphicsScene を使用していることに注意してください。
GraphicsScene でのベアリング式の計算により、不規則な結果が生成される
ご覧のとおり、線は外部変数によって描画されると色が変わります。線が常にまっすぐであるとは限らないため、Qgradient が機能しない可能性があります。色は線に沿って流れる必要があります。
何が起こっているかは次のとおりです。
ご覧のとおり、赤い線 (PathItem) は、最後に表示されていた場所から新しい位置にジャンプします。
動作をより明確にするために、この線が時間の経過とともに描かれていると想像してください。赤で始まり、すぐに変数が設定され、描画される線分の色がオレンジに変わります。線の赤い部分は元のままなので、変数がその時点でどのような状態であったかを歴史的に見ることができます。さまざまな時点で、変数が調整され、それに応じて線の新しい部分に適用される色が更新されます。
線の描画が終了したら、それを見て、色がいつ変化したかを確認できます。
これがすべて理にかなっていることを願っています。