2013-01-06 33 views
0

我需要处理QWebView(QWebPage)中复选框的选中状态。Qt WebKit手柄复选框检查

更多细节:

有在HTML一些复选框。我们希望在检查其中一些应用程序时对其进行更改。要做到这一点,我们需要知道它何时发生变化。

怎么办?

回答

0

这并不容易。这是一个解决方法,它不完善但实用。

创建QObject的子类,例如, Notifier。这将是你从网络世界到本土世界的。无论您希望如果复选框被选中时所做的更改都应该直接放在此处,或者您可以通过信号/插槽机制将其转发到更远的链中。

使用addToJavaScriptWindowObject将此Notifier对象的实例注入到您的网页中。它将被附加到全局window对象。现在,使用DOM的addEventListener将新侦听器添加到该复选框,侦听器除了调用桥的回调函数外什么也不做。 window.notifier.doSomething()。可以通过使用evaluateJavaScript执行小型JavaScript代码来执行此监听器调整。

这个技巧是可行的,因为QtWebKit internal bridge理解一个QObject实例(虽然自省),并使其属性和插槽可以从JavaScript世界访问。

+0

谢谢。我已经在KDE Blogs上阅读过关于它的博客文章;) –