crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> DOM и QWebView
good_game
  опции профиля:
сообщение 20.5.2012, 16:00
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 18.8.2011
Пользователь №: 2815

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




Репутация:   0  


Добрый день, уважаемые форумчане.
Создаю модуль (диалоговое окно). Окно разделено вертикально на две части: в правой части находится 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
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 18.8.2011
Пользователь №: 2815

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




Репутация:   0  


Неужели совсем никто не знает? Или, может, я вопрос изложил некорректно?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 30.5.2012, 21:04
Сообщение #3


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

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

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




Репутация:   40  


Попробуй так:
1. Получаешь все QWebElement находящиеся на QWebView.
2. Проверяешь входит ли QPoint куда тыкнули в QRect данного QWebElement или нет. Если входит, то это наш элемент и выделяем его.

Получить все элементы на QWebView можно с помощью QWebFrame::findAllElements ( "*" )
Получить QRect можно с помощью QRect QWebElement::geometry () const
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
good_game
  опции профиля:
сообщение 20.6.2012, 9:06
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 18.8.2011
Пользователь №: 2815

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




Репутация:   0  


Спасибо. Способ сработал. Правда немного через задний проход получилось, но пусть так.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_Oleg_*_*
сообщение 14.8.2012, 16:09
Сообщение #5





Гости








    


Привет!
Может кто может помочь. Имеется следующая проблема. Поставил под 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_*_*
сообщение 16.8.2012, 13:39
Сообщение #6





Гости








    


Проблему разрешил
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 25.4.2024, 2:46