Название: Генерация событий в Qt Отправлено: Alex_cs_gsp от Сентябрь 20, 2010, 16:12 Воспроизвел пример из книгии Шлее. Для кулайнэдит установил свой фильтр событий, который высылает событие QKeyEvent имитирующее нажатие клавиши А, если была нажата клавиша Z (стр.307). Все работает. Я решил проверить (под виндой), что происходит с оконными сообщениями, при помощи Spy. Так вот, окно получает три сообщения WM_KEYDOWN, WM_CHAR и WM_KEYUP, которые соответствуют клавиши Z, как и должно быть, но при этом окно не получает какого-либо сообщения для клавиши A, нажатие которой эмулируется, хотя последняя появляется в виджете???
Название: Re: Генерация событий в Qt Отправлено: Авварон от Сентябрь 20, 2010, 16:19 а зачем высылать виндовое сообщение?
все правильно - приходит сообщение от ОС, его заворачивают в QEvent и отправляют получателю. Имитируем нажатие клавиши - делаем QEvent и отправляем его получателю. 1й шаг скипаем, ибо в нем мало профита Название: Re: Генерация событий в Qt Отправлено: Alex_cs_gsp от Сентябрь 20, 2010, 16:26 QCoreApplication::sendEvent(...), не высылает виндовое сообщение, если для винды скомпилировано, или это от обстоятельств зависит?
Название: Re: Генерация событий в Qt Отправлено: Авварон от Сентябрь 20, 2010, 16:29 вообще не посылает, это не нужно (по логике разрабов Qt)
Название: Re: Генерация событий в Qt Отправлено: Alex_cs_gsp от Сентябрь 20, 2010, 16:31 Тогда понятно. :-*
|