Как зарегистрировать щелчок мыши по QRect

Рейтинг: 0Ответов: 1Опубликовано: 18.02.2015

Есть прямоугольник, есть функция, которая должна выполняться при щелчке мыши на нем. Как связать эти две вещи? Честно говоря, события мыши я слегка не понял из книги Шлея, и мне хотелось бы понять, КАК работать с событиями мыши, в данном случае с объектами QRect. Вообще я хотел связать прямоугольник и слот (ту самую функцию) с помощью connect, но соответствующего сигнала у QRect нет. Буду очень благодарен, если объясните работу с QMouseEvent, в работе с QRect, разумеется

Ответы

▲ 1

QRect - это элементарный класс данных (фактически это 4 целых числа + методы манипуляции ими). Он не является наследником QObject и поэтому не может использоваться для соединений сигнал-слот. C событиями мыши он тоже никак не связан. Такие события получают наследники, например, QWidget или QGraphicsScene. Для получения и обработки QMouseEvent следует переопределить метод того виджета, где собственно происходит действие мышью, либо отловить его с помощью QEventFilter. И неплохо бы все таки перечитать Шлее, тут все смешалось: события, сигналы, слоты, данные. Или на худой конец справку Qt http://qt-project.org/doc/qt-4.8/eventsandfilters.html