Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Границы QGraphicsItem произвольной формы |
Автор: TechnoMag 14.7.2015, 14:29 |
Подкажите пожалуйста, как сделать так, чтобы hoverEvent выполнялся когда мышка пересекает реальные границы изображения, а не квадратные границы? Нюанс еще в том, что изображения будут находится рядом друг с другом, без прксельных пробелов. |
Автор: math64 15.7.2015, 08:50 |
Для этого нужно переопределить QPainterPath shape() const Одновременно с ним нужно переопределять QRectF boundingRect() const (должен включать в себя shape()) и void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) (должен рисовать только внутри shape()) Добавлено через 9 минут и 8 секунд PS: ещё нужно переоределить bool contains ( const QPointF & point ) const и если используется прозрачность QPainterPath opaqueArea () const Чтобы меньше возиться, можно унаследоваться от QGraphicsPathItem |
Автор: math64 15.7.2015, 09:10 |
или QGraphicsPolygonItem - если границы имеют форму полигона |