Название: Определение нажатия по QPixmap Отправлено: arz.maslov от Апрель 05, 2013, 09:24 Всем доброго дня.
Ситуация следующая. Создал класс наследник от QWidget. В классе происходит отрисовка 2-х картинок (картинки представляют из себя 2 круга разного диаметра с центрами в одной точке). Нужно определить в методах mousePressEvent и wheelEvent (следовательно координаты курсора знаю) по какой из картинок было произведено нажатие. P.S. Была идея реализовать отрисовку и действия над картинками в разных классах, но сам по себе widget прямоугольный,а картинка круглая, следовательно при нажатии в угол виджета пользователь как бы будет нажимать на картинку нижнего "слоя". а отрабатывать будет нажатие по верхнему "слою". Подскажите как можно определить это? Название: Re: Определение нажатия по QPixmap Отправлено: arz.maslov от Апрель 05, 2013, 09:39 Задача решена!
Вспомнил про пример из документации "Animated Tiles Example". Реализацию буду разделять на два класса наследованных от QGraphicsWidget. Название: Re: Определение нажатия по QPixmap Отправлено: Bepec от Апрель 05, 2013, 09:44 В чём проблема? У вас есть координаты клика. Координаты нижнего круга и координаты верхнего круга.
Если попадает в нижний - то по нижнему (внутреннему). Если попадает в верхний - то по верхнему. Если не попадает ни в один - игнорируем. Название: Re: Определение нажатия по QPixmap Отправлено: arz.maslov от Апрель 05, 2013, 10:13 В чём проблема? У вас есть координаты клика. Координаты нижнего круга и координаты верхнего круга. Если попадает в нижний - то по нижнему (внутреннему). Если попадает в верхний - то по верхнему. Если не попадает ни в один - игнорируем. В том и вопрос как определитель попадает на верхний круг или нет.) Скажи как?))) Название: Re: Определение нажатия по QPixmap Отправлено: Bepec от Апрель 05, 2013, 10:50 Кхм. Проходили математику? А геометрию?
Если точка удалена от центра круга на расстояние < радиусу круга, значит точка находится внутри круга. ( и если расстояние равно, значит она лежит на его эммм... забыл как называется :D ) Псевдокод алгоритма Код: if (Точка клика, ты принадлежишь к малому кругу?) Название: Re: Определение нажатия по QPixmap Отправлено: arz.maslov от Апрель 05, 2013, 10:54 Хорошо.
А можно ли определить именно нажатие по картинке, что именно было нажатие по объекту QPixmap) (это так, на будущее))) Название: Re: Определение нажатия по QPixmap Отправлено: Bepec от Апрель 05, 2013, 12:00 Всё что ты отрисовал становится графикой. Но...
Но графика нарисована по координатам. А координаты ты знаешь. Так же ты рисуешь на виджете. И его расположение тебе известно. И тут вступает гениальная математика. позиция виджета + позиция нарисованной на виджете картинки = область, клик в которой тебе надо ловить. |