crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> как инициировать mouseMoveEvent
mezmay
  опции профиля:
сообщение 14.12.2010, 15:04
Сообщение #11


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


mouseMoveEvent вызывается 2 раза как и должно.
Я говорю что onGeo() вызывается 1 раз, и происходит это скорее всего потому что при последовательном выполении операторов на определенное время блокируется принятие событий. (пример - for(int i=0; i<100000; i++){какие-то длительные действия} - программа подвиснет, если это сделать в основном потоке)
Короче надо каким-то образом доставить накопившиеся события (в данном случае событие движения мыши)...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 14.12.2010, 15:37
Сообщение #12


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


qApp->processEvents()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 14.12.2010, 19:00
Сообщение #13


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(Rocky @ 14.12.2010, 15:37) *
qApp->processEvents()

Зачем человека "уводить" в заведемо неверное направление? :)

Цитата
Короче надо каким-то образом доставить накопившиеся события (в данном случае событие движения мыши)...


Тебе уже сказали как это сделать. Так должно работать:

    QMouseEvent me0(QEvent::MouseMove, QPoint(), 0, 0, 0);
    QMouseEvent me1(QEvent::MouseMove, QPoint(width()-1, height()-1), 0, 0, 0);
    QCoreApplication::sendEvent(this, &me0);
    // do stuff
    QCoreApplication::sendEvent(this, &me1);
    // do stuff


Только убедись, чтобы это было не в конструкторе виджета главного окна и до вызова этих строк был запущен основной цикл событий.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 14.12.2010, 22:19
Сообщение #14


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


А почему processEvents в данном случае не поможет? Этих событий в главном цикле нет?...А вон оно что, не уделил внимания строке QWebView::mouseMoveEvent(&me0).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 14.12.2010, 23:54
Сообщение #15


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


SABROG, без qApp->processEvents() действительно не работает. Причин не выяснял. Может быть есть какая то оптимизация доставляемых событий в контекст JavaScript? Не знаю в общем, могу только догадываться.

mezmay, в приложение рабочий пример для второй версии API карт гугл. В общем там ничего нового, всё то что уже здесь обсудили, но у меня этот код обрабатывает так как задумано. В общем, попробуй
Прикрепленные файлы
Прикрепленный файл  addressbook.zip ( 8,31 килобайт ) Кол-во скачиваний: 83
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 16:39