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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Генерация событий в Qt  (Прочитано 3939 раз)
Alex_cs_gsp
Гость
« : Сентябрь 20, 2010, 16:12 »

Воспроизвел пример из книгии Шлее. Для кулайнэдит установил свой фильтр событий, который высылает событие QKeyEvent имитирующее нажатие клавиши А, если была нажата клавиша Z (стр.307). Все работает. Я решил проверить (под виндой), что происходит с оконными сообщениями, при помощи Spy. Так вот, окно получает три сообщения WM_KEYDOWN, WM_CHAR и WM_KEYUP, которые соответствуют клавиши Z, как и должно быть, но при этом окно не получает какого-либо сообщения для клавиши A, нажатие которой эмулируется, хотя последняя появляется в виджете???
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Сентябрь 20, 2010, 16:19 »

а зачем высылать виндовое сообщение?
все правильно - приходит сообщение от ОС, его заворачивают в QEvent и отправляют получателю.
Имитируем нажатие клавиши - делаем QEvent и отправляем его получателю. 1й шаг скипаем, ибо в нем мало профита
Записан
Alex_cs_gsp
Гость
« Ответ #2 : Сентябрь 20, 2010, 16:26 »

QCoreApplication::sendEvent(...), не высылает виндовое сообщение, если для винды скомпилировано, или это от обстоятельств зависит?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Сентябрь 20, 2010, 16:29 »

вообще не посылает, это не нужно (по логике разрабов Qt)
Записан
Alex_cs_gsp
Гость
« Ответ #4 : Сентябрь 20, 2010, 16:31 »

Тогда понятно.  Целующий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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