私はQPainterを使ってアプリケーションを作成しています.QPainterクラスにはcairo_push_groupのアナログが必要です。例えば、交差する可能性があります。Qtのcairo_push_groupアナログ:「クリア」コンポジションモードは、その下のすべてをクリアします
問題は、「クリア」作成モードで穴を描画すると、描画する穴の下にあるすべてがクリアされることです。私は複雑な形を描く前に穴の下にあったイメージを残しておきたい。言い換えれば、穴の下のすべてがクリアされます。穴の下のすべてが見えるようにするだけです。
1つの解決策はOdd fillオプション(デフォルトのもの)でQPainterPath
を使用しているようですが、私のアプリでは穴に交差する可能性があり、この方法では2つの穴が結合しません2つの穴の交差点は穴ではありません)。
もう1つの解決策は、QPainterPath::subtracted
メソッドを使用することですが、何らかの理由でポリゴンの品質が低下します(円は、数え方が数えられる形になります)。
他の解決策は、私は必要なすべてを描き、それをクリア、一時的QImage
へ描画してからモード「オーバー先」を使用していますQImage
は再びそれを描く保存することですが、それは非常に遅いように思わメモリを消費するソリューションです。
この問題を解決する他の方法はありますか?たぶんQtにcairo_push_groupというアナログ機能がありますか?
カイロに切り替えるようアドバイスしてください。
写真は問題をよりよく説明しています: