【问题标题】:Qt WebKit handle checkbox checked选中 Qt WebKit 句柄复选框
【发布时间】:2013-01-06 22:21:32
【问题描述】:

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

更多详情:

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

怎么做?

【问题讨论】:

    标签: qt checkbox qtwebkit qwebview qwebpage


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢。我已经在 KDE 博客上阅读了一篇关于它的博客文章;)
    猜你喜欢
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    相关资源
    最近更新 更多