0

私の QGraphicsView の背景は、オーバーロード.drawBackground(...)と呼び出しによって設定されpainter.drawImage(...)ます。関連する QGraphicsScene にフォアグラウンド オブジェクトを追加します。これらは主に QGraphicsRectItem 型です。これらの前景の四角形のそれぞれが、それらがカバーする背景のサブイメージに画像フィルターを適用することを望みます。

  • これは可能ですか?
  • もしそうなら、私を始めるためのサンプルコードはどこで見つけることができますか? グーグル検索では、イベント フィルタリング用のコードしか見つからない傾向があります。

前もって感謝します!

4

1 に答える 1

0

背景が静的な場合、(カスタム) アイテム クラスの paintEvents でこの静的画像を使用できます。しかし、私の知る限り、これには Qt のアイテム エフェクトを使用することはできず、独自のフィルターを paintEvents に実装する必要があります。フィルターの画像から正しい領域を切り取ることを忘れないでください。

背景画像さえ必要ない場合もあります。たとえば、アイテムで覆われている背景画像を反転したい場合は、アイテムの paintEvent で領域全体を塗りつぶすだけで、描画のにペインターのコンポジション モードを適切に設定します。(使用可能なモードについては、QPainter::CompositionModeを参照してください。)

背景が静的でない場合は、drawBackground メソッドのコードを再利用するか、画像に背景を描画してから、この画像を使用して実際の背景を描画し、各アイテムの効果のために + を使用しないと不可能です。

より具体的な回答を得るには、アイテムに必要な背景とフィルターに関する詳細情報を提供する必要があります。

于 2012-05-22T20:57:02.643 に答える