2013-02-24 4 views
0

이것은 사소한 것처럼 보이지만 해결책을 찾을 수 없습니다. QGraphicsScene에서 특정 x, y 점의 색상을 읽어야합니다. 와 비슷한 것QGraphicsScene에서 XY 점의 색상을 얻는 방법은 무엇입니까?

+0

참조 http://stackoverflow.com/questions/3602152/how-to-draw-a-qpoint-on-a-qgraphicsview-scene – user1929959

+0

QGraphicsView에서 그 그림을 그리기 전에 QGraphicsScene에 대한 해당 질문에 대한 답변을 얻을 수 없습니다. . 이 장면은 아직 도색되지 않은 항목을 플로트 좌표로 관리합니다. 실제 페인팅은 페인트 장치 (예 : QGraphicsView)로 수행해야합니다. 그래야만 QGraphicsItem :: paint가 호출되어 실제 그림을 그립니다. –

답변

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); 

완료.

관련 문제