Здравствуйте, гость ( Вход | Регистрация )
igor_bogomolov | Дата 14.12.2010, 23:54 |
SABROG, без qApp->processEvents() действительно не работает. Причин не выяснял. Может быть есть какая то оптимизация доставляемых событий в контекст JavaScript? Не знаю в общем, могу только догадываться. mezmay, в приложение рабочий пример для второй версии API карт гугл. В общем там ничего нового, всё то что уже здесь обсудили, но у меня этот код обрабатывает так как задумано. В общем, попробуй |
|
Rocky | Дата 14.12.2010, 22:19 |
А почему processEvents в данном случае не поможет? Этих событий в главном цикле нет?...А вон оно что, не уделил внимания строке QWebView::mouseMoveEvent(&me0). | |
SABROG | Дата 14.12.2010, 19:00 |
qApp->processEvents() Зачем человека "уводить" в заведемо неверное направление? Цитата Короче надо каким-то образом доставить накопившиеся события (в данном случае событие движения мыши)... Тебе уже сказали как это сделать. Так должно работать:
Только убедись, чтобы это было не в конструкторе виджета главного окна и до вызова этих строк был запущен основной цикл событий. |
|
Rocky | Дата 14.12.2010, 15:37 |
qApp->processEvents() | |
mezmay | Дата 14.12.2010, 15:04 |
mouseMoveEvent вызывается 2 раза как и должно. Я говорю что onGeo() вызывается 1 раз, и происходит это скорее всего потому что при последовательном выполении операторов на определенное время блокируется принятие событий. (пример - for(int i=0; i<100000; i++){какие-то длительные действия} - программа подвиснет, если это сделать в основном потоке) Короче надо каким-то образом доставить накопившиеся события (в данном случае событие движения мыши)... |
|
SABROG | Дата 14.12.2010, 11:16 |
Это точно реальный код Тогда объясните мне поведение такого метода:
Вы говорите, что bar() вызывается только 1 раз. Значит выхода из foo() - не будет! А если его не будет, значит программа будет уже работать некорректно. |
|
mezmay | Дата 14.12.2010, 9:24 |
Это точно реальный код | |
SABROG | Дата 10.12.2010, 17:23 |
Мне кажется вы лукавите, если это реальный код, то второй вызов mouseMoveEvent() должен произойти, если приложение не крашится или не зацикливается, иначе это противоречит вообще программной логике.
|
|
mezmay | Дата 10.12.2010, 15:46 |
Я работаю с google maps API в классе, унаследованном от QWebView. То есть у меня отображается html-страница. В тексте этой html-страницы есть код:
- это значит что при возникновении события движения мыши из JavaScript вызывается С++ слот моего класса onGeo(). Когда в своем классе я пишу:
- в этом случае onGeo() вызывается 1 раз (хотя по идее должно 2 раза). А если написать: - то вообще ни разу... Подскажите как добиться чтобы onGeo вызывалось 2 раза |
|
igor_bogomolov | Дата 10.12.2010, 14:38 |
Ну вот смотри - элементарный тестовый пример Раскрывающийся текст
Вывод (координаты в шестнадцатиричном виде): Цитата QMouseEvent(MouseMove, 0, 0, 0) QPoint(a,a) Т.е. всё работает так как надоQMouseEvent(MouseMove, 0, 0, 0) QPoint(96,96) |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 28.4.2024, 3:14 |