crossplatform.ru

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

> Web AxWidget, WebBrowser в Qt
Гость_Саша_*
сообщение 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 символа.
В Интернете я после всего этого наткнулся на страницу
http://www.crossplatform.ru/documentation/...baxwidget-h.php.
Там тоже переопределяется ф-я QAxWidget::translateKeyEvent. Но как было отмечено появляется дублирование клавишь.
Что делать???!!!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ViGOur
  опции профиля:
сообщение 25.1.2008, 11:37
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

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




Репутация:   40  


Раз отвергли, то нужно сначала попробовать самому обойти эту проблему, тебе же нужно использовать сейчас этот функционал, а не ждать пока они исправят.

Попробуй вариации: (message == WM_KEYFIRST && message == WM_KEYLAST)

У меня к сожалению нет готового проекта с WebBrowser, а то сам попробовал бы. :)

Сообщение отредактировал ViGOur - 25.1.2008, 11:41
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Саша   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   А если попробовать так: virtual bool translateKe...   25.1.2008, 11:26
|- - Саша   Цитата(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


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


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




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