QtWebkit-plugins是一个向QWebView
提供功能的库,例如SpellCheck
和Notification Web API
。
阅读:
我尝试在Windows中编译代码,但我的QWebView
无法按预期工作,换句话说,SpellCheck
和Notification Web API
无效。这就像我没有使用QtWebkit-plugins
一样。哪个可以?
在要编译的文档中,我必须运行:
$ qmake
$ make && make install
中了解详情
我使用mingw
而不是make
我使用了mingw32-make
:
hunspell
hunspell
C:\Qt5.4.0\5.4\mingw491_32\bin
和C:\Qt5.4.0\5.4\mingw491_32\lib
我在cmd中编译了qtwebkit-plugins:
qmake
mingw32-make && mingw32-make install
mingw32-make
已生成libqtwebkitpluginsd.a
和qtwebkitplugins.dll
libqtwebkitpluginsd.a
C:\Qt5.4.0\5.4\mingw491_32\lib
qtwebkitplugins.dll
C:\Qt5.4.0\5.4\mingw491_32\plugins\webkit
和C:\Qt5.4.0\5.4\mingw491_32\bin
之后我编译了另一个使用QWebView
的简单项目,然后测试了SpellCheck
中的<textarea spellcheck="true"></textarea>
并且无效。
我测试了Notification Web API
并且也没有用。
注意:使用QT_DEBUG_PLUGINS=1
运行项目并在应用程序输出标签中使用Notification Web API
(在QtCreator中)返回:
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
已加载,它只是无效。
我的项目如何运作这些功能?
答案 0 :(得分:1)
对于 QT-5.2 + 中的这项工作,需要修改qwebkitplatformplugin.h
文件
改变这个:
QT_BEGIN_NAMESPACE
Q_DECLARE_INTERFACE(QWebKitPlatformPlugin, "com.nokia.Qt.WebKit.PlatformPlugin/1.9");
由此:
QT_BEGIN_NAMESPACE
Q_DECLARE_INTERFACE(QWebKitPlatformPlugin,
"org.qt-project.Qt.WebKit.PlatformPlugin/1.9");
如果需要与 QT-4.8 兼容,请更改以下代码:
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