2013-05-11 56 views
0

我正在一個項目,在那裏我使用QGraphicsScene,QGraphicsViwe,QGraphicsItem。我想在QGraphicsItem::paint之前做一些計算。之前QGraphicsItem ::塗料將被稱爲

那麼有沒有辦法在QGraphicsItem::paint之前做點什麼?

預先感謝您!

+0

它只是在'paint'函數的開頭做了什麼區別? – cmannett85 2013-05-11 21:07:20

+0

@ cmannett85 - 它有缺點,例如,每次執行paintEvent時都必須包含它。可悲的是,似乎沒有太多的選擇。也許子類化'QGraphicsScene' ... – dtech 2013-05-11 21:10:04

+0

我可以在'paint'中做到這一點,但它不會有效,每次調用paint時都必須做同樣的事情。這就是爲什麼我正在尋找另一種方式。 – nabroyan 2013-05-11 21:14:13

回答

1

QGraphicsView具有功能showEvent(),如果您覆蓋它,它將在項目的繪製函數之前被調用。你可以通過調用scene()函數來獲得你的場景,之後你可以得到所有的項目。