Здравствуйте, гость ( Вход | Регистрация )
|
NordWest |
19.4.2009, 17:59
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 86 Регистрация: 26.11.2008 Пользователь №: 433 Спасибо сказали: 1 раз(а) Репутация: 0
|
Нужно, чтобы в программе при движении мыши вызывался:
В конструкторе класса вызываю Но событие по прежнему ловится только при нажатой кнопке. Если у центрального виджета вызвать этот же метод - ситуация та же. Что не так? |
|
|
|
![]() |
|
Litkevich Yuriy |
19.4.2009, 18:24
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
NordWest, проверь как работает пример %QTDIR%\examples\widgets\scribble
измени файл scribblearea.cpp в конце конструктора добавь строку: setMouseTracking ( true); А в функции void ScribbleArea::mouseMoveEvent(QMouseEvent *event), закоментируй строчку условия, чтобы осталась только функция drawLineTo(event->pos()); собери и посмотри, должно рисоватся без участия кнопки мыши. |
|
|
|
|
NordWest |
19.4.2009, 20:04
Сообщение
#3
|
|
Студент ![]() Группа: Участник Сообщений: 86 Регистрация: 26.11.2008 Пользователь №: 433 Спасибо сказали: 1 раз(а) Репутация: 0
|
Цитата(Litkevich Yuriy @ 19.4.2009, 19:24) Link NordWest, проверь как работает пример %QTDIR%\examples\widgets\scribble измени файл scribblearea.cpp Ну да, работает. И у меня вызывается, если mouseMoveEvent() центрального виджета MainWindow вызывать, а не MainWindow(). Мне бы подошло, но информацию о положении мыши надо выдавать в строку состояния, а как я это сделаю из под виджета?.. Цитата(SABROG @ 19.4.2009, 20:09) Link Таким образом пропиши: Таким образом всё работает двояко. Если я создаю метод mouseMoveEvent (переопределяю наверное) в классе центрального виджета, то происходит следующее. При движении мышки над центральным виджетом (картинка) трэкинг не работает, но mouseMoveEvent вызывается, тот что в классе центрального виджета. Если его не определять, то вызывается mouseMoveEvent у MainWindow и только с нажатием кнопки, т.е. без трэкинга. При этом, при движении мыши над окном вне центрального виджета, трэкинг работает и координаты мышки выводятся в строку состояния. |
|
|
|
NordWest Не работает setMouseTracking() 19.4.2009, 17:59
SABROG Таким образом пропиши:
setMouseTracking(true... 19.4.2009, 19:09
SABROG Цитата(NordWest @ 19.4.2009, 21:04) Таким... 19.4.2009, 20:27
NordWest Цитата(SABROG @ 19.4.2009, 21:27) QMainWi... 19.4.2009, 21:08
Гость_Андрей_* Цитата(NordWest @ 19.4.2009, 17:59) Нужно... 20.7.2013, 21:31
Гость_Андрей_* Сталкивался в Qt с подобной проблемой при использо... 20.7.2013, 21:39
Гость_Андрей_* Сталкивался в Qt с подобной проблемой при использо... 20.7.2013, 21:38![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 11.3.2026, 12:20 |