2013-02-24 1 views
0

Это кажется тривиальным, но не может найти решение. Мне нужно прочитать цвет некоторой точки x, y на QGraphicsScene. Что-то вроде graphScen->colorAt(x,y);Как получить цвет точки XY на QGraphicsScene?

+0

См. Http://stackoverflow.com/questions/3602152/how-to-draw-a-qpoint-on-a-qgraphicsview-scene – user1929959

+0

Этот вопрос не может быть отвечен для QGraphicsScene, прежде чем он будет окрашен в QGraphicsView , Сцена управляет еще неокрашенными элементами, с поплавковыми координатами. Фактическая картина должна выполняться устройством рисования, то есть QGraphicsView. Только тогда вызывается QGraphicsItem :: paint и делает фактическую картину. –

ответ

0

QGraphivsScene не имеет знаний о цветах в точках, и это не совсем тривиально (у вас есть преобразования как на сцены, так и на предметы). что вы можете сделать, это получить доступ к pixmap рендеринговой сцены и получить доступ к информации о пикселях.

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

Выполнено.