LINUX.ORG.RU

Qt курсор


0

0

Блин зарылся уже в доках, никто не подскажет как удержать курсор мыши в пределах окна?

★★★★★

>Блин зарылся уже в доках, никто не подскажет как удержать курсор мыши в пределах окна?

Попробуй с другой стороны - убери всё за пределами окна, т.е. запускай приложение на полный экран:)

anonymous
()

что бы было красиво - никак. Если с артефактами движения, то явно надо переопределить leaveEvent() на главном виджете и делать в нём QCursor::setPos()

alex_custov ★★★★★
()
Ответ на: комментарий от erfea

А может его скрыть и сделать свой курсор? В огре же есть гуй библиотеки.

Elverion
()

Мне кажется, что вы хотите странного. Может лучше не надо?

anonymous
()
Ответ на: комментарий от erfea

Нормальное желание, во всех играх, где мышь используется не для курсора (например, 3D-шутеры) это нужно. Делаете классически:

Прячете курсор

QWidget::setCursor( Qt::BlankCursor );

каждую итерацию смотрите насколько он сместился от центра

QPoint distance = QCursor::pos() - qApp->desktopWidget()->geometry().center();

И возвращаете курсор на место

QCursor::setPos( qApp->desktopWidget()->geometry().center() );

Возвращаетесь к нормальной мыши при заходе в меню или потере фокуса главным окном.

Dendy ★★★★★
()
Ответ на: комментарий от alex_custov

>что бы было красиво - никак. Если с артефактами движения, то явно надо переопределить leaveEvent() на главном виджете и делать в нём QCursor::setPos()

Артефакты движения в виде возврата курсора в центр виджета не напрягают (буду его прятать). Спасибо, то что надо, только теперь никак в толк не возьму почему сам не нашёл этого в доках... элементарно ведь.

erfea ★★★★★
() автор топика
Ответ на: комментарий от erfea

ещё немного поковыряв, решил QCursor::setPos() делать в QWidget::mouseMoveEvent(), в одном месте двух зайцев курсор всегда в центре и каждый раз сравнивая позицию курсора с центром виджета получаем информацию о смещении манипулятора.

erfea ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.