2013-02-24 47 views
0

這似乎微不足道,但找不到解決方案。我需要讀取QGraphicsScene中某個x,y點的顏色。 類似於graphScen->colorAt(x,y);如何獲取QGraphicsScene上XY點的顏色?

+0

查看http://stackoverflow.com/questions/3602152/how-to-draw-a-qpoint-on-a-qgraphicsview-scene – user1929959 2013-02-24 10:59:59

+0

QGraphicsScene在繪製QGraphicsView之前無法回答該問題。場景使用浮動座標管理未上漆的項目。實際的繪畫需要由繪圖設備完成,即QGraphicsView。只有然後調用QGraphicsItem :: paint才能進行實際繪畫。 – 2013-02-25 07:10:13

回答

0

QGraphivsScene不具備關於點上顏色的知識,並且它不是非常簡單(您在場景和項目上都有轉換)。你可以做的是訪問渲染場景的像素圖並訪問那裏的像素信息。

QPixmap paintDevice(sceneBoundingRect()); 
QPainter painter(&paintDevice); 
graphScen->render(painter); 
// Now you have the pixmap, get the pixel information. 
QImage pixels = paintDevice.toImage(); 
QRgb colorAt = pixels.pixel(x,y); 

完成。