选中Qt WebKit句柄复选框

时间:2013-01-06 22:21:32

标签: qt checkbox qtwebkit qwebview qwebpage

我需要在QWebView(QWebPage)中处理复选框的已检查状态。

更多详情:

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

怎么做?

1 个答案:

答案 0 :(得分:0)

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

创建QObject的子类,例如Notifier。这将是您从网络世界到本地世界的桥梁。如果选中复选框,您想要实现的任何更改应直接放在此处,或者您可以通过信号/插槽机制将其进一步向下转发。

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

这个技巧很有效,因为QtWebKit internal bridge了解QObject实例(虽然内省),并且可以从JavaScript世界访问其属性和插槽。