如何为QtWebKit开发插件?

时间:2008-11-20 05:13:43

标签: qt plugins webkit qtwebkit

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

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

-Regards,Vivek Gupta

4 个答案:

答案 0 :(得分:4)

简单的答案是编写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

答案 1 :(得分:1)

实际上,Webkit已经在Qt中被集成,这个被嵌入的包被称为QtWebkit。 并且他们为插件创建提供了新的方法。我只需要一个或多个链接来在QtWebkit中创建一个插件,该插件应该由java脚本调用。

此致 Vivek Gupta

答案 2 :(得分:0)

Introduction to WebKit Plug-in Programming Topics适用于WebKit,QtWebKit是特殊的吗?

答案 3 :(得分:0)

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

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

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

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