【问题标题】:How do I develop a plug-in for QtWebKit?如何为 QtWebKit 开发插件?
【发布时间】:2010-09-23 04:39:36
【问题描述】:

我正在尝试为QtWebkit 开发一个插件。但是我找不到如何为 QtWebKit 开发一个插件,希望它可以被 JavaScript 调用。有谁知道解释如何执行此操作的任何教程或文档?

Webkit 已集成到 Qt 中,这个集成包称为 QtWebkit。他们提供了新的插件创建方法。

-问候,维韦克·古普塔

【问题讨论】:

  • 我的评论有帮助吗?

标签: qt plugins webkit qtwebkit


【解决方案1】:

简单的答案是编写QWebPage 的子类并将其设置在您的webview 上。然后你就可以展示你自己的HTML页面,并在createPlugin方法中对合适的对象标签做出反应;

protected:
   QObject* createPlugin(const QString &classid, const QUrl &url, const QStringList &paramNames, const QStringList &paramValues)
   {
      if (classid=="lineedit") {
         QLineEdit *lineedit = new QLineEdit;
         return lineedit;
      }
      return 0;
}

并显示类似于以下 HTML 的内容;

<object type="application/x-qt-plugin" classid="lineedit" id="lineedit">
can't load plugin
</object>

记住你需要打开插件,如果你想在QWebSettings中获得更高级的功能,可能还需要打开JavaScript

要拥有更高级的功能,您应该使用QWebPluginFactory

【讨论】:

    【解决方案2】:

    要将对象公开给 Javascript,请使用

    this->mainFrame()->addToJavaScriptWindowObject("lineedit", this);
    

    其中lineedit是可用于从javascript访问对象的名称

    Qt 属性将作为 JavaScript 属性公开,插槽作为 JavaScript 方法公开。 (见http://doc.qt.io/archives/qt-4.7/qwebframe.html#addToJavaScriptWindowObject

    【讨论】:

      【解决方案3】:

      其实Webkit已经集成到Qt中了,这个集成包叫做QtWebkit。 他们为插件创建提供了新方法。我只需要一个链接或步骤来在 QtWebkit 中创建一个插件,并且该插件应该由 java 脚本调用。

      问候 维韦克·古普塔

      【讨论】:

        【解决方案4】:

        Introduction to WebKit Plug-in Programming Topics是针对WebKit的,QtWebKit有那么特别吗?

        【讨论】:

          猜你喜欢
          • 2010-09-06
          • 1970-01-01
          • 1970-01-01
          • 2015-08-03
          • 2010-11-20
          • 2011-05-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多