0

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

更多细节:

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

怎么做?

4

1 回答 1

0

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

创建 的子类QObject,例如Notifier。这将是您从网络世界到原生世界的桥梁。如果选中复选框,则无论您想要实现什么更改都应该直接放在此处,或者您可以通过信号/插槽机制将其进一步转发到链中。

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

这个技巧之所以奏效,是因为QtWebKit 内部桥接器理解一个 QObject 实例(尽管是自省的)并使其属性和插槽可从 JavaScript 世界访问。

于 2013-01-07T00:46:12.813 回答