Здравствуйте, гость ( Вход | Регистрация )
| Гость_Саша_* |
24.1.2008, 20:45
Сообщение
#1
|
|
Гости |
Проблеммы встроить WebBrowser в Qt-приложение не составляет. НО получившийся браузер НЕ ВСЕ клавиши пускает, например, до JScript-ов. В частности не пускает стрелочки, Backspace, PgUp, PgDown. В чём несложно убедиться написав такой HTML-код:
CODE <script> function on_keydown( e ) { var keyChar = String.fromCharCode(event.which); window.status = event.keyCode; document.all["StatusLine"].innerText = event.keyCode; } document.onkeydown = on_keydown; </SCRIPT> <BODY> ppppppppp </BODY> <P ID=StatusLine> aaaaa </P> и сравнив результаты его работы в обычном IExplorer-е или (другом браузере) и браузере написаном на Qt. После нескольких дней поиска была найдена виртуальная ф-я класса QAxWidget::translateKeyEvent. Если снаследовать этот класс и переопределив эту ф-ю возвращать в ней всегда true, все клавиши начинают доходить, НО теперь все те проблемные клавиши начинают приходить дважды, например, в полях ввода. что несложно проверить на следующем HTML-коде: CODE <HTML> <BODY> <INPUT TYPE=TEXT></INPUT> </BODY> </HTML> Чтобы увидеть нехороший эффект нужно ввести в поле редактирования буквы, а потом поперемещать в нём текстовый курсор при помощи клавиш "вправо", "влево". Курсор будет смещаться сразу на 2 символа. В Интернете я после всего этого наткнулся на страницу Link. Там тоже переопределяется ф-я QAxWidget::translateKeyEvent. Но как было отмечено появляется дублирование клавишь. Что делать???!!! |
|
|
|
![]() |
|
ViGOur |
25.1.2008, 11:26
Сообщение
#2
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
А если попробовать так:
Как я понимаю идет речь о закрытии событий для кнопок: лево, право, вверх, вних и бекспэйс. Просто как написано в описании: Link Цитата If the function returns false the processing of the key event is ignored by ActiveQt, ie. the ActiveX control might handle it or not.
|
|
|
|
Саша Web AxWidget 24.1.2008, 20:45
ViGOur А как ты переопределил функцию translateKeyEvent? ... 24.1.2008, 20:52
ViGOur А вот и ответ у тролей:
ЦитатаSome key events happ... 24.1.2008, 21:45
Саша Вначале я переопределил по-своему: просто "re... 25.1.2008, 11:19
Саша ViGOur, залез я по твоей ссылке к тролям...
Как я ... 25.1.2008, 11:32
Саша Цитата(ViGOur @ 25.1.2008, 11:26) А если ... 25.1.2008, 11:36
ViGOur Раз отвергли, то нужно сначала попробовать самому ... 25.1.2008, 11:37
Саша Цитата(ViGOur @ 25.1.2008, 11:37) Раз отв... 25.1.2008, 11:50
Саша Цитата(ViGOur @ 25.1.2008, 11:37) У меня ... 25.1.2008, 11:54
ViGOur Стоп, а тебе нужно, чтобы кнопки-стрелочки и бексп... 25.1.2008, 11:56
Саша Цитата(ViGOur @ 25.1.2008, 11:56) Стоп, а... 25.1.2008, 12:00
ViGOur Цитата(Guest_Саша_* @ 25.1.2008, 11:54) Д... 25.1.2008, 11:57
ViGOur Тогда оформлять как баг, или попробовать заморочит... 25.1.2008, 12:05
Саша Цитата(ViGOur @ 25.1.2008, 12:05) Тогда о... 25.1.2008, 12:08
ViGOur угу, нужно лезть, заодно и получше изучишь Qt изну... 25.1.2008, 12:13
Alexandr Я бы использовал ,на вашем месте, модуль QtWebKit.... 27.1.2008, 12:51
klochec_v еще такой вопрос у когонить была такая проблема чт... 21.2.2008, 14:16![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 7.12.2025, 13:02 |