как инициировать mouseMoveEvent |
Здравствуйте, гость ( Вход | Регистрация )
как инициировать mouseMoveEvent |
mezmay |
10.12.2010, 11:19
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Мне надо в фукции расположить курсор мыши сначала в точке с координатами (0,0) а потом в точке (width()-1, height()-1). Делаю так:
второе событие не отрабатывает. Как правильно сделать? может вставить? Но куда?
Сообщение отредактировал mezmay - 10.12.2010, 11:33 |
|
|
igor_bogomolov |
10.12.2010, 12:06
Сообщение
#2
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
смотри доки на функции
тебе нужна 1-ая
|
|
|
mezmay |
10.12.2010, 13:04
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Результат тот же.
Если поставить qApp->processEvents() после второго sendEvent то отрабатывают два события мыши, но у второго какие-то странные координаты - посередине виджета |
|
|
igor_bogomolov |
10.12.2010, 13:36
Сообщение
#4
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Что то я сразу не догадался, проще будет воспользоваться функцией
она должна так ка надо отработать
|
|
|
mezmay |
10.12.2010, 13:58
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Спасибо, но мне надо чтобы два раза в системе отработало событие перемещения мыши,а после вызова QCursor::setPos оно не отрабатывает (ну или мой виджет их не получает)
Сообщение отредактировал mezmay - 10.12.2010, 14:03 |
|
|
igor_bogomolov |
10.12.2010, 14:38
Сообщение
#6
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Ну вот смотри - элементарный тестовый пример
Раскрывающийся текст
Вывод (координаты в шестнадцатиричном виде): Цитата QMouseEvent(MouseMove, 0, 0, 0) QPoint(a,a) Т.е. всё работает так как надоQMouseEvent(MouseMove, 0, 0, 0) QPoint(96,96) |
|
|
mezmay |
10.12.2010, 15:46
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Я работаю с google maps API в классе, унаследованном от QWebView. То есть у меня отображается html-страница. В тексте этой html-страницы есть код:
- это значит что при возникновении события движения мыши из JavaScript вызывается С++ слот моего класса onGeo(). Когда в своем классе я пишу:
- в этом случае onGeo() вызывается 1 раз (хотя по идее должно 2 раза). А если написать: - то вообще ни разу... Подскажите как добиться чтобы onGeo вызывалось 2 раза
Сообщение отредактировал mezmay - 10.12.2010, 15:47 |
|
|
SABROG |
10.12.2010, 17:23
Сообщение
#8
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Мне кажется вы лукавите, если это реальный код, то второй вызов mouseMoveEvent() должен произойти, если приложение не крашится или не зацикливается, иначе это противоречит вообще программной логике.
|
|
|
mezmay |
14.12.2010, 9:24
Сообщение
#9
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Это точно реальный код
|
|
|
SABROG |
14.12.2010, 11:16
Сообщение
#10
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
|
|
|
Текстовая версия | Сейчас: 27.12.2024, 1:42 |