DOM и QWebView |
Здравствуйте, гость ( Вход | Регистрация )
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? |
|
|
ViGOur |
30.5.2012, 21:04
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Попробуй так:
1. Получаешь все QWebElement находящиеся на QWebView. 2. Проверяешь входит ли QPoint куда тыкнули в QRect данного QWebElement или нет. Если входит, то это наш элемент и выделяем его. Получить все элементы на QWebView можно с помощью QWebFrame::findAllElements ( "*" ) Получить QRect можно с помощью QRect QWebElement::geometry () const |
|
|
Текстовая версия | Сейчас: 15.1.2025, 15:39 |