2012-05-22 47 views
0

我的QGraphicsView的背景是通過重載.drawBackground(...)並調用painter.drawImage(...)來設置的。我繼續將前景對象添加到關聯的QGraphicsScene。這些主要是QGraphicsRectItem類型。我希望每個前景矩形都將圖像過濾器應用於它們覆蓋的背景的子圖像。通過前景圖像過濾QGraphicsView的背景QGraphicsItems

  • 這可能嗎?
  • 如果是這樣,我在哪裏可以找到一些示例代碼來讓我開始?谷歌搜索往往沒有什麼,但事件過濾代碼。

在此先感謝!

回答

0

如果您的背景是靜態的,您可以在(自定義)項目類的paintEvents中使用此靜態圖像。但據我所知,你不能使用Qt的物品效果,但需要在paintEvents中自己實現過濾器。請記得爲您的過濾器裁剪圖像的正確區域。

有些情況下,你甚至不需要背景圖片。例如,如果要反轉項目所覆蓋的背景圖像,只需在項目的paintEvent中填充整個區域,但是應適當地在之前設置畫家的組合模式。 (有關可用模式,請參見QPainter::CompositionMode。)

如果背景不是靜態的,則不可能不重用drawBackground方法的代碼或在圖像上繪製背景,然後使用此圖像繪製實際背景+每個項目中的效果。

對於一個更具體的答案,你應該提供更多關於你想要的物品的背景和過濾器的信息。