В общем, есть класс: сцена ClickedGraphicsScene - потомок QGraphicsScene. В нём переопределено событие mousePressEvent.
Сама сцена содержит несколько Pixmap'ов, добавляемых при помощи функции addPixmap. Вот сам код:
QApplication a(argc, argv);
MainWindow w;
w.show();
ClickedGraphicsScene scene;
scene.addPixmap(QPixmap("D:/123.bmp"));
scene.addPixmap( /* ещё */ );
...
QGraphicView view(&scene, w.centralWidget());
view.setGeometry(0, 0, scene.width(), scene.height());
view.show();
return a.exec();
Всё отображается нормально, все Pixmap'ы видны.
Теперь мне нужно обращаться к ним по клику на сцене мышкой. А вот что происходит при клике:
QPixmap* pixmap = (QPixmap*) itemAt(event->scenePos());
... и, увы, такой каст не проходит, в дебаге программа вешается. Я пытался искать какие-то специальные способы преобразовать QGraphicsItem в QPixmap - но ничего не нашёл...
Может, кто подскажет? Или вообще нужно не itemAt пользоваться - а есть что-то, что сразу указатель на QPixmap возвращает?
P. S. Также буду признателен, если мне кто-то подскажет более лучший способ обратиться к конкретному пикселю Pixmap'а, чем преобразование его toImage() и там уже вызов pixel(). Хотя это и не принципиально...