Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Как осуществить захват мышки?

Автор: trdm 4.9.2008, 22:20

Можно ли заставить мышку курсировать только внутри определенного ректа?
вроде была такая функциёвина как captureMouse();
или я глючу?

Автор: trdm 5.9.2008, 9:29

никто не знает? :(

Автор: sploid 5.9.2008, 9:41

есть функция void QWidget::grabMouse (), но она просто все события от мыши передает определенному окну.

Что бы заставить мышь курсирует внутри окна, можно вызвать для этого окна void QWidget::grabMouse (), затем отлавливать передвижение мыши и если мышь уехала за пределы окна передвигать курсор внутрь окна. Думаю это не должно быть сложно в реализации.

Автор: trdm 5.9.2008, 10:57

Цитата(sploid @ 5.9.2008, 10:41) *
пределы окна передвигать курсор внутрь окна

А как? еще не сталкивался с методами, которые могут такое делать.

Автор: ЙаМайскЫйПчОЛ 10.9.2008, 12:21

Я делал это руками обработкой события, когда мышка выходила за пределы Видгета, принудительно загонял её обратно... через опу конечно, но..

Автор: trdm 10.9.2008, 13:06

Цитата(ЙаМайскЫйПчОЛ @ 10.9.2008, 13:21) *
Я делал это руками обработкой события, когда мышка выходила за пределы Видгета, принудительно загонял её обратно... через опу конечно, но..

А какие функции/методу пользовал?
Можно посмотреть на код?

Автор: trdm 10.9.2008, 22:41

блин, похвастаться народ любит...

Автор: ЙаМайскЫйПчОЛ 11.9.2008, 7:57

QMouseEvent
QCursor->setPos()
QWidget->grabMouse()
QWidget->pos()

Связка этого.
Это было 1 год назад, сырцы с винтом сломались)

Автор: trdm 11.9.2008, 12:37

ВООООООТ!!!! и не нужен код, просто пните в нужном направлении и все. :)

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)