good_game
20.5.2012, 16:00
Добрый день, уважаемые форумчане.
Создаю модуль (диалоговое окно). Окно разделено вертикально на две части: в правой части находится QWebView, в который загружается страничка, в левой части находится QTreeView, в котором отображается DOM-дерево загруженной странички.
При выделении узла в DOM-дереве, соответствующий элемент подсвечивается в WebView (меняю цвет фона и цвет border). Также работает в обратном направлении: ткнули мышкой в QWebView и соответствующий элемент выделяется в DOM-дереве.
С первым вариантом всё понятно, всё работает. Вот со вторым проблема.
Мой текущий механизм работы: перехват события клика по QWebView, затем с помощью
QWebElement element = mf->hitTestContent(pos).element();
определяю куда пользователь ткнул.
Проблема в том, что не всегда это срабатывает. Не работает, например, на элементах-ссылках и ещё на некоторых тегах. На некоторых div-тегах срабатывает, на некоторых нет. Причём зависимость не могу уловить.
Подскажите, можно ли как то с помощтю сигналов-слотов соединить QWebElement и QTreeWidgetItem?
good_game
30.5.2012, 20:35
Неужели совсем никто не знает? Или, может, я вопрос изложил некорректно?
Попробуй так:
1. Получаешь все QWebElement находящиеся на QWebView.
2. Проверяешь входит ли QPoint куда тыкнули в QRect данного QWebElement или нет. Если входит, то это наш элемент и выделяем его.
Получить все элементы на QWebView можно с помощью
QWebFrame::findAllElements ( "*" ) Получить QRect можно с помощью
QRect QWebElement::geometry () const
good_game
20.6.2012, 9:06
Спасибо. Способ сработал. Правда немного через задний проход получилось, но пусть так.
Гость_Oleg_*
14.8.2012, 16:09
Привет!
Может кто может помочь. Имеется следующая проблема. Поставил под 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..
не знаю что делать и как построить что бы локалстора работала
помогите если кто знает плс!