我需要处理QWebView(QWebPage)中复选框的选中状态。Qt WebKit手柄复选框检查
更多细节:
有在HTML一些复选框。我们希望在检查其中一些应用程序时对其进行更改。要做到这一点,我们需要知道它何时发生变化。
怎么办?
我需要处理QWebView(QWebPage)中复选框的选中状态。Qt WebKit手柄复选框检查
更多细节:
有在HTML一些复选框。我们希望在检查其中一些应用程序时对其进行更改。要做到这一点,我们需要知道它何时发生变化。
怎么办?
这并不容易。这是一个解决方法,它不完善但实用。
创建QObject
的子类,例如, Notifier
。这将是你从网络世界到本土世界的桥。无论您希望如果复选框被选中时所做的更改都应该直接放在此处,或者您可以通过信号/插槽机制将其转发到更远的链中。
使用addToJavaScriptWindowObject将此Notifier
对象的实例注入到您的网页中。它将被附加到全局window
对象。现在,使用DOM的addEventListener将新侦听器添加到该复选框,侦听器除了调用桥的回调函数外什么也不做。 window.notifier.doSomething()
。可以通过使用evaluateJavaScript执行小型JavaScript代码来执行此监听器调整。
这个技巧是可行的,因为QtWebKit internal bridge理解一个QObject实例(虽然自省),并使其属性和插槽可以从JavaScript世界访问。
谢谢。我已经在KDE Blogs上阅读过关于它的博客文章;) –