Название: клик по QGraphicsPolygonItem Отправлено: CPP11 от Январь 03, 2015, 18:04 Доброго времени суток, подскажите пожалуйста как обработать клик по QGraphicsPolygonItem?
Название: Re: клик по QGraphicsPolygonItem Отправлено: gil9red от Январь 03, 2015, 18:58 Можно, например, переопределить методы mouseReleaseEvent (http://qt-project.org/doc/qt-4.8/qgraphicsitem.html#mouseReleaseEvent), mousePressEvent (http://qt-project.org/doc/qt-4.8/qgraphicsitem.html#mousePressEvent), mouseDoubleClickEvent (http://qt-project.org/doc/qt-4.8/qgraphicsitem.html#mouseDoubleClickEvent) и в переопределенных делать нужные вам действия (например, отсылать сигналы).
Название: Re: клик по QGraphicsPolygonItem Отправлено: CPP11 от Январь 03, 2015, 19:02 Можно, например, переопределить методы mouseReleaseEvent (http://qt-project.org/doc/qt-4.8/qgraphicsitem.html#mouseReleaseEvent), mousePressEvent (http://qt-project.org/doc/qt-4.8/qgraphicsitem.html#mousePressEvent), mouseDoubleClickEvent (http://qt-project.org/doc/qt-4.8/qgraphicsitem.html#mouseDoubleClickEvent) и в переопределенных делать нужные вам действия (например, отсылать сигналы). Я так и пытался сделать:Код: class QGraphicsHexagonItem : public QGraphicsPolygonItem Название: Re: клик по QGraphicsPolygonItem Отправлено: gil9red от Январь 03, 2015, 19:07 покажите исходник :)
Название: Re: клик по QGraphicsPolygonItem Отправлено: CPP11 от Январь 03, 2015, 19:14 покажите исходник :) QGraphicsHexagonItem.hКод: #ifndef __QGRAPHICSHEXAGONITEM_H__ Код: #include "QGraphicsHexagonItem.h" Код: QGraphicsScene* scene = new QGraphicsScene(this); Название: Re: клик по QGraphicsPolygonItem Отправлено: gil9red от Январь 03, 2015, 19:50 В mousePressEvent вызываете метод предка?
Название: Re: клик по QGraphicsPolygonItem Отправлено: CPP11 от Январь 03, 2015, 20:10 В mousePressEvent вызываете метод предка? нет, там только брейкпоинт, который никогда не отрабатывает.Название: Re: клик по QGraphicsPolygonItem Отправлено: gil9red от Январь 03, 2015, 21:05 Метод предка всегда при переопределении нужно вызывать
Название: Re: клик по QGraphicsPolygonItem Отправлено: CPP11 от Январь 03, 2015, 21:11 Метод предка всегда при переопределении нужно вызывать дык не вызывается переопределённый метод, стало быть чего бы я в нём не городил это тоже не выполнится.Название: Re: клик по QGraphicsPolygonItem Отправлено: gil9red от Январь 03, 2015, 21:35 Давайте минимальный компилябельный проект :)
Название: Re: клик по QGraphicsPolygonItem Отправлено: CPP11 от Январь 03, 2015, 21:57 Давайте минимальный компилябельный проект :) Весь код уже приведён, прикрепляю проект в VS2010, но там только уже приведённый код и автоматически сгенерированный средой.Название: Re: клик по QGraphicsPolygonItem Отправлено: gil9red от Январь 03, 2015, 22:51 Интересно выглядит у вас :)
Нашел причину: тип параметра в методе-событии должен быть QGraphicsSceneMouseEvent :) Так сразу и не обратишь на это внимания, глядя на исходники :) Название: Re: клик по QGraphicsPolygonItem Отправлено: CPP11 от Январь 03, 2015, 23:35 Нашел причину: тип метода-события должен быть QGraphicsSceneMouseEvent :) Точно, спасибо! Сложноотыскиваемый косяк получился :( . |