Название: глобальное отлавливание событий мыши\клавы Отправлено: vux от Ноябрь 14, 2012, 14:59 Можно ли отслеживать движение мыши, например, без видимых виджетов? То есть назначил eventFilter на QApplication и отлавливаешь мышь пока не отключиться фильтер, внезависимости от того что под мышой, да хоть и над левое окно левой программы.
Или может както вывести виджет нужного куска и чтоб он был невидимым но чтобы все события ловились. Название: Re: глобальное отлавливание событий мыши\клавы Отправлено: GreatSnake от Ноябрь 14, 2012, 15:01 Средствами Qt нельзя, а вообще поиск рулит, т.к. таких вопросов здесь полно уже было.
Название: Re: глобальное отлавливание событий мыши\клавы Отправлено: kibsoft от Ноябрь 14, 2012, 15:18 Недавно постил в кладовую готовых решений: Ловим глобальные события системы с помощью хуков (клавиатура, мышь и т.д.) (http://www.prog.org.ru/topic_23468_0.html)
Это решение для винды. Название: Re: глобальное отлавливание событий мыши\клавы Отправлено: ecspertiza от Ноябрь 14, 2012, 16:03 или подрубать либу Qxt , в ней что то похожее было, вроде как работает кроссплатформенно :)
Название: Re: глобальное отлавливание событий мыши\клавы Отправлено: Bepec от Ноябрь 14, 2012, 18:07 Ну ненадо так пугать сразу.
Отслеживать движение мыши можно - QCursor::pos позволяет получать координаты мыши в текущий момент, даже если на экране не имеется виджетов (hide или tray). Прикручиваем к нему таймер и получаем то что надо за короткое время. Конечно это не очень корректно по отношению к коду и практицизму, но это: 1) работает 2) не грузит систему 3) кроссплатформенно(по идее, что QCursor:pos отрабатывать будет одинакого в любых системах) Название: Re: глобальное отлавливание событий мыши\клавы Отправлено: vux от Ноябрь 14, 2012, 20:36 Тут такая ситуация:
1. Есть программа не кутешная. 2. В ней встроен питон 2.6. 3. В системе у меня (линукс) стоит куте 4.8.3. Я собрал пикуте и запускаю в цикле программы. 4. Хочеться над другим не-кутешным окном на определенный промежуток времени захватывать координаты мыши при каждом ее движении средствами пикуте. Название: Re: глобальное отлавливание событий мыши\клавы Отправлено: Bepec от Ноябрь 14, 2012, 20:48 Попробуй и посмотри как работает QCursor::pos(). Если оно возвращает правильные координаты используй его.
PS хотя если Цитировать над другим не-кутешным окном , то это уже должны быть платформозависимые функции. Ибо определить что окно под курсором - можно лишь платформенными функциями.Название: Re: глобальное отлавливание событий мыши\клавы Отправлено: vux от Ноябрь 14, 2012, 20:52 Про qcursor знал просто, не пользовавшись таймерами, не пологал как прикрутить не виджетный отлов этого qcursor.
Спасибо буду пробовать Название: Re: глобальное отлавливание событий мыши\клавы Отправлено: Igors от Ноябрь 14, 2012, 21:19 4. Хочеться над другим не-кутешным окном на определенный промежуток времени захватывать координаты мыши при каждом ее движении средствами пикуте. В расчетных задачах эту роль играет метод Эйлера. Всем давно известно что он плох - патологически неустойчив. Но он настолько привлекателен для реализации что интерес к нему вспыхивает снова и снова. И тут уж ничего не попишешь, просто "это пройдет". |