2013-01-06 2 views
0

Мне нужно обработать проверенное состояние флажка в QWebView (QWebPage).Проверка Qt WebKit checkbox

Подробнее:

Есть несколько флажков в HTML. Мы хотим внести изменения в приложение, если некоторые из них проверены. Для этого нам нужно знать, когда это изменилось.

Как это сделать?

ответ

0

Это непросто. Вот обходной путь, он несовершенен, но достаточно практичен.

Создайте подкласс QObject, например. Notifier. Это будет ваш модем из мира веб-сайтов в родной мир. Независимо от того, какое изменение вы хотите реализовать, если флажок установлен, нужно поместить его прямо или вы можете переслать его дальше по цепочке через механизм сигнала/слота.

Внесите экземпляр этого объекта Notifier на вашу веб-страницу, используя addToJavaScriptWindowObject. Он будет прикреплен к глобальному объекту window. Теперь используйте DOM's addEventListener, чтобы добавить нового слушателя в этот флажок, слушатель ничего не делает, кроме как вызвать обратный вызов моста, например. window.notifier.doSomething(). Эта настройка прослушивателя может быть выполнена путем выполнения небольшого кода JavaScript с использованием evaluateJavaScript.

Этот трюк работает, потому что QtWebKit internal bridge понимает экземпляр QObject (хотя и интроспекцию) и делает его свойства и слоты доступными из мира JavaScript.

+0

Спасибо. Я уже читал запись в блоге об этом в KDE Blogs;) –