我正在将代码从qt4移植到qt5。我将以下行添加到.pro
文件as suggested:
QT += webkitwidgets
但是,当我运行qmake
时,我收到此错误:
Project ERROR: Unknown module(s) in QT: webkitwidgets
我在Ubuntu 12.04 LTS上开发并安装了Qt as described。
答案 0 :(得分:109)
您需要安装webkitwidgets库。
在Ubuntu上,在终端中尝试:
sudo apt-get install libqt5webkit5-dev
答案 1 :(得分:8)
如果你需要为Qt 5.7安装webkit * Windows库,你应该手动编译它,因为在新版webkit(WebView?)中被WebEngine取代。
阅读Qt 5.7发布(评论):http://blog.qt.io/blog/2016/06/16/qt-5-7-released/
构建序列(静态或共享):
1)下载Qt 5.7.0来源:http://download.qt.io/community_releases/5.7/5.7.0/
2)下载所需的工具:ActiveState Perl(二进制),Python(二进制),Ruby(二进制),GnuWin Bison(二进制),GPref(二进制),Grep(二进制),WinFlex,LibIconv,make(二进制), sqlite(source!),ICU(source),windows msys(二进制)(unix就像shell一样带工具),mingw-w64(bin + dev)用于构建Qt和QtWebKit,参见链接:https://trac.webkit.org/wiki/BuildingQtOnWindows
3)将ICU源下载到C:\ icu \ icu后。通过打开“开始”窗口菜单打开msys QT mingw控制台shell(应下载并安装msys)并搜索或使用快速搜索。在打开的控制台中启动configure脚本,然后编译并安装:
$ cd C:\ icu \ icu \ source
$ ./runConfigureICU
$ set PATH =%PATH%; C:\ msys \ 1.0 \ bin \
$ make.exe
$ make.exe install
4)使用(!)ICU支持构建Qt(设置" -icu"进行配置)请参阅下面的编译脚本。将PATH更改为您的环境。
目录结构:
C:\ Qt的\ SRC \ qtbase \的compile.bat
set INCLUDE=C:\icu\icu\dist\include
set LIB=C:\icu\icu\dist\lib
set QTDIR=C:\Qt\5.7.0n
set PATH=%PATH%;C:\Qt\Qt5.7.0\5.7\mingw53_32\bin;C:\Qt\Qt5.7.0\Tools\QtCreator\bin;C:\Qt\Qt5.7.0\Tools\mingw530_32\bin;C:\Qt\Src\qtbase\bin;C:\Program Files (X86)\GnuWin32\bin;C:\winflex;C:\Ruby23-x64\bin;C:\Python27;C:\mingw-w64\i686-1\mingw32\bin;C:\icu\bin
set QMAKESPEC=win32-g++
set BUILD_DIR=C:\Qt\Qt5.7.0n
call C:\Qt\Src\qtbase\configure.bat -prefix %BUILD_DIR% -platform %QMAKESPEC% -confirm-license -debug-and-release -opensource -opengl desktop -no-compile-examples -icu -I C:/icu/icu/dist/include -L C:/icu/icu/dist/lib
jom.exe -j 4
pause
在Windows Power Shell中以exmaple运行命令:
$ cd C:\ Qt \ Src \ qtbase
$ ./compile.bat
通过编译后,使用它在BUILD_DIR中安装文件(安装Qt文件):
$ C:\ mingw-w64 \ i686-1 \ mingw32 \ bin \ mingw32-make.exe install
Qt应该开始安装
5)将Qtwebkit源代码下载到C:\ Qt \ Src \ qtwebkit。使用下面的编译脚本使用新的Qt 5.7.0版本编译qtwebkit,其中包含带有ICU的C:\ Qt \ 5.7.0n中的文件。
C:\ Qt的\ SRC \ QtWebKit的\工具\脚本\的compile.bat
set INCLUDE=C:\sqlite
set LIBS=C:\sqlite
set SQLITE3SRCDIR=C:\sqlite
set QTDIR=C:\Qt\Qt5.7.0n
set PATH=%PATH%;C:\Qt\Qt5.7.0n\bin;C:\Qt\Src\qtbase\bin;C:\winflex;C:\Ruby23-x64\bin;C:\Python27;C:\mingw-w64\i686-1\mingw32\bin;C:\icu\bin;C:\Program Files (x86)\GnuWin32\bin
set QMAKESPEC=win32-g++
call perl.exe .\build-webkit --qt --release
编译qtwebkit:
$ cd C:\ Qt \ Src \ qtwebkit \ Tools \ Scripts
$ ./compile.bat
$ cd C:\ Qt \ Src \ qtwebkit \ WebKitBuild \ Release
$ C:\ mingw-w64 \ i686-1 \ mingw32 \ bin \ mingw32-make.exe install
成功编译和安装后,应该可以使用qtwebkit编译应用程序。
建立QT for STATIC
编辑文件C:\ Qt \ Src \ qtbase \ compile.bat并传递构建。
...
call C:\Qt\Src\qtbase\configure.bat -prefix %BUILD_DIR% -platform %QMAKESPEC% -confirm-license -debug-and-release -opensource -opengl desktop -static -no-compile-examples -icu
echo "QMAKE_FLAGS += -static -static-libgcc" >> .mkspecs/%QMAKESPEC%/qmake.conf
...
可能的错误
1)构建qtwebkit:"fatal error: unicode/uchar.h: No such file or directory"
检查您的Qt 5.7.0n是否与ICU构建。 IT部门也可以通知您关于" ICU的要求"在qtwebkit中配置。
2)flex: unknown flag '-'. For usage, try
你应该使用正确的Flex版本,即" win_flex"在这种情况下。您应该重命名文件以使用win_flex而不仅仅是flex(和bison)。
1)将C:\ Program Files(x86)\ GnuWin32 \ bin \ flex.exe重命名为某个未使用的名称。
2)将C:\ Program Files(x86)\ GnuWin32 \ bin \ bison.exe重命名为一些未使用的名称。
3)将C:\ winflex \ win_bison.exe重命名为bison.exe。
3)构建qtwebkit:"fatal error: sqlite3.h: No such file or directory"
编辑文件C:\ Qt \ Src \ qtwebkit \ Tools \ Scripts \ compile.bat并检查sqlite的正确路径:
set SQLITE3SRCDIR=C:\(path to some SQLITE .h/source files)
4)skipping incompatible ... when searching for ...
你应该下载正确的库拱(32位或64位)
5)View.cpp ... undefined reference to WKPageCanGoBack
通过某些测试或MiniBrowser时可能会发生。您可以在文件中搜索" UIProcess / API / qt"和" MiniBroswer"并从中删除它 Makefile&和其他一些文件,然后重新开始构建。
LINKS
构建Qt5:https://wiki.qt.io/Building_Qt_5_from_Git Qt WebKit构建
答案 2 :(得分:2)
Alex引用的社区版本仅在Qt 5.9之前可用。 如果你想使用更新的Qt5(当前版本是5.11),那么另一种选择是移植" QtWebKit"到" QtWebEngine"。
答案 3 :(得分:1)
我通过复制先前安装5.5中的webkit和webkitwidgets pri文件来实现它。
~/Qt/5.5/clang_64/mkspecs/modules/
答案 4 :(得分:1)
对于Windows,我刚刚下载了https://github.com/annulen/webkit/releases/tag/qtwebkit-tp5并将文件夹复制到相关的Qt安装文件夹。现在我可以使用MinGW Qt5.8和最新的webkit。感谢Konstantin和该项目的所有贡献者!
只需注意一件事 - 我需要在Qt中使用发布配置。
答案 5 :(得分:0)
对我有用的是两个答案的组合,我使用了@ user1251007建议的内容+该命令
sudo apt-get install libqt5websockets5-dev
在此处找到此命令行:link to the stackoverflow response