首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编译qtwebkit插件?

如何编译qtwebkit插件?
EN

Stack Overflow用户
提问于 2015-03-06 18:10:07
回答 1查看 929关注 0票数 1

QtWebkit-插件是一个为QWebView提供功能的库,如SpellCheckNotification Web API

读到:

我试图在Windows中编译代码,但我的QWebView不像预期的那样工作,换句话说,SpellCheckNotification Web API不能工作。就像我一直没有-使用QtWebkit-plugins。哪个可以呢?

在要求编译的文档中,我必须运行:

代码语言:javascript
复制
$ qmake
$ make && make install

QtWebkit-插件库中阅读更多内容

我用的是mingw,而不是make,而是mingw32-make

  • 我编写了hunspell
  • 复制hunspell for C:\Qt5.4.0\5.4\mingw491_32\binC:\Qt5.4.0\5.4\mingw491_32\lib
  • 我在cmd中使用了qtwebkit插件: qmake mingw32-make && mingw32 32-make安装
  • mingw32-make生成的libqtwebkitpluginsd.aqtwebkitplugins.dll
  • 复制的libqtwebkitpluginsd.a for C:\Qt5.4.0\5.4\mingw491_32\lib
  • 复制qtwebkitplugins.dll for C:\Qt5.4.0\5.4\mingw491_32\plugins\webkitC:\Qt5.4.0\5.4\mingw491_32\bin

之后,我编译了另一个使用QWebView的简单项目,然后在<textarea spellcheck="true"></textarea>中测试了SpellCheck,但没有工作。

我测试了Notification Web API,也没有工作。

注意:当使用QT_DEBUG_PLUGINS=1运行我的项目并在应用程序输出选项卡中使用Notification Web API (在QtCreator中)时,返回:

代码语言:javascript
复制
Found metadata in lib C:/Qt5.4.0/5.4/mingw491_32/plugins/webkit/qtwebkitplugins.dll, metadata=
{
    "IID": "org.qtwebkit.QtWebKit.QtWebKitPlugin",
    "MetaData": {
    },
    "className": "QtWebKitPlugin",
    "debug": false,
    "version": 328704
}


loaded library "C:/Qt5.4.0/5.4/mingw491_32/plugins/webkit/qtwebkitplugins.dll"
QLibraryPrivate::unload succeeded on "C:/Qt5.4.0/5.4/mingw491_32/plugins/webkit/qtwebkitplugins.dll" 
QSystemTrayIcon::setVisible: No Icon set

在我看来,dll是加载的,只是不起作用。

我的项目是如何工作这些特性的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-08 08:49:05

要在QT-5.2+中完成这项工作,需要修改qwebkitplatformplugin.h文件。

改变这一点:

代码语言:javascript
复制
QT_BEGIN_NAMESPACE
Q_DECLARE_INTERFACE(QWebKitPlatformPlugin, "com.nokia.Qt.WebKit.PlatformPlugin/1.9");

通过这一点:

代码语言:javascript
复制
QT_BEGIN_NAMESPACE
Q_DECLARE_INTERFACE(QWebKitPlatformPlugin,
    "org.qt-project.Qt.WebKit.PlatformPlugin/1.9");

如果需要与QT-4.8兼容,请更改此代码:

代码语言:javascript
复制
QT_BEGIN_NAMESPACE
#if QT_VERSION >= 0x050200
Q_DECLARE_INTERFACE(QWebKitPlatformPlugin, "org.qt-project.Qt.WebKit.PlatformPlugin/1.9")
#else
Q_DECLARE_INTERFACE(QWebKitPlatformPlugin, "com.nokia.Qt.WebKit.PlatformPlugin/1.9")
#endif
QT_END_NAMESPACE
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28904966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档