Russian Qt Forum
Ноябрь 26, 2024, 02:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Снова про эмуляцию устройств ввода  (Прочитано 2881 раз)
fuCtor
Гость
« : Август 11, 2009, 06:53 »

Читал FAQ, читал форум, читал документацию, делал все как написано, но сообщения в виджет который фокусе приходят (отправитель), а в виджет получатель после пересылки не долетают.

Код
C++ (Qt)
QPoint point = r_->mapFromGlobal(event->globalPos());
QWheelEvent * new_event = new QWheelEvent(point , event->delta(), event->buttons(),
       event->modifiers(), event->orientation());
QApplication::postEvent(r_, new_event);
 

Уже не пойму в какую сторону и копать.
Записан
MoPDoBoPoT
Гость
« Ответ #1 : Август 11, 2009, 13:07 »

Попробуй метод bool QCoreApplication::sendEvent( QObject * receiver, QEvent * event ), в отличие от предыдущего метода событие передается получателю сразу напрямую, а не помещается в очередь. Но если событие передается в другой поток, то без void QCoreApplication::postEvent( QObject * receiver, QEvent * event ) все-таки не обойтись, т.к. она потобезопасна.
Записан
fuCtor
Гость
« Ответ #2 : Август 11, 2009, 14:25 »

через sendEvent тоже пробовал, никак.
Даже прошолся отладчиком пошагово по всему стеку вызовов. Событие не приходит в назначенное место. Отклоняется на уровне толи QWidget толи QAbstractScrollArea, в обработчике сообщений объекта.

PS как видно из кода выше, пытаюсь передать сообщение о скроле в одном объекте в другой (синхронизировать их).
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.243 секунд. Запросов: 20.