![]() |
|
![]() ![]() ![]() |
|
TechnoMag |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.3.2010 Репутация: нет Всего: нет |
Подкажите пожалуйста, как сделать так, чтобы hoverEvent выполнялся когда мышка пересекает реальные границы изображения, а не квадратные границы?
Нюанс еще в том, что изображения будут находится рядом друг с другом, без прксельных пробелов. Это сообщение отредактировал(а) TechnoMag - 14.7.2015, 14:32 |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
Для этого нужно переопределить 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 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
или QGraphicsPolygonItem - если границы имеют форму полигона
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |