我正在尝试为QtWebkit开发一个插件。但是我无法找到如何为QtWebKit开发插件,希望可以通过JavaScript调用它。有没有人知道任何解释如何做到这一点的教程或文档?
Webkit已经被嵌入到Qt中,这个集成包被称为QtWebkit。他们为插件创建提供了新方法。
-Regards,Vivek Gupta
简单的答案是写一个QWebPage
的子类并在你的webview
上设置它。然后,您可以显示自己的HTML页面并对createPlugin
方法中的相应对象标记做出反应;
protected:
QObject* createPlugin(const QString &classid, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues)
{
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
实际上Webkit已经在Qt中被集成,这个被嵌入的包被称为QtWebkit。并且他们为插件创建提供了新的方法。我只需要一个或多个链接来在QtWebkit中创建一个插件,该插件应该由java脚本调用。
关心Vivek Gupta
Introduction to WebKit Plug-in Programming Topics是针对WebKit的,QtWebKit是特别的吗?
要将对象公开给Javascript,请使用
this->mainFrame()->addToJavaScriptWindowObject("lineedit", this);
其中lineedit
是可用于从javascript访问对象的名称
Qt属性将作为JavaScript属性和插槽显示为JavaScript方法。 (见http://doc.qt.io/archives/qt-4.7/qwebframe.html#addToJavaScriptWindowObject)