Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DOM и QWebView
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Script. Интеграция WebKit
good_game
Добрый день, уважаемые форумчане.
Создаю модуль (диалоговое окно). Окно разделено вертикально на две части: в правой части находится QWebView, в который загружается страничка, в левой части находится QTreeView, в котором отображается DOM-дерево загруженной странички.
При выделении узла в DOM-дереве, соответствующий элемент подсвечивается в WebView (меняю цвет фона и цвет border). Также работает в обратном направлении: ткнули мышкой в QWebView и соответствующий элемент выделяется в DOM-дереве.
С первым вариантом всё понятно, всё работает. Вот со вторым проблема.
Мой текущий механизм работы: перехват события клика по QWebView, затем с помощью
QWebElement element = mf->hitTestContent(pos).element();
определяю куда пользователь ткнул.
Проблема в том, что не всегда это срабатывает. Не работает, например, на элементах-ссылках и ещё на некоторых тегах. На некоторых div-тегах срабатывает, на некоторых нет. Причём зависимость не могу уловить.
Подскажите, можно ли как то с помощтю сигналов-слотов соединить QWebElement и QTreeWidgetItem?
good_game
Неужели совсем никто не знает? Или, может, я вопрос изложил некорректно?
ViGOur
Попробуй так:
1. Получаешь все QWebElement находящиеся на QWebView.
2. Проверяешь входит ли QPoint куда тыкнули в QRect данного QWebElement или нет. Если входит, то это наш элемент и выделяем его.

Получить все элементы на QWebView можно с помощью QWebFrame::findAllElements ( "*" )
Получить QRect можно с помощью QRect QWebElement::geometry () const
good_game
Спасибо. Способ сработал. Правда немного через задний проход получилось, но пусть так.
Гость_Oleg_*
Привет!
Может кто может помочь. Имеется следующая проблема. Поставил под 7ку 4.8 е сдк qt, туда входит и вебкит. Но с меня требуется кое что в вебките поддурить. Беру с нокиа qtwebkit-2.2.0 строю ( с 2.2.2 то же самое)
захожу в бровзере на такой вот скрипт

<!DOCTYPE html>
<html>
<body>

<div id="result"></div>
<script>
if(typeof(Storage)!=="undefined")
{
localStorage.lastname="Smith";
document.getElementById("result").innerHTML="Last name: " + localStorage.lastname;
}
else
{
document.getElementById("result").innerHTML="Sorry, your browser does not support web storage...";
}
</script>

</body>
</html>


С тем что идет в сдк все класно
а вот то что строю говорит - Sorry, your browser does not support web storage..
не знаю что делать и как построить что бы локалстора работала
помогите если кто знает плс!
Гость_Oleg_*
Проблему разрешил
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.