之前我是在 Qt 中用 QTextBrowser显示 html 文件,但是不支持 JavaScript,只能显示简单的 html 文件,所以尝试了一下用QWebEngine 模块来显示完整的页面。
一、检查是否安装了QWebEngine模块
运行 MaintenanceTool.exe
二、QWebEngine模块安装
安装好后在Visual Studio中使用Qt的QWebEngineView
控件时会出现LNK2019无法解析的外部符号错误,通常与链接库配置缺失或编译环境不一致有关。
以下是解决方案:
配置(VS2019 + Qt 6.6.3)
1、 在 vs中添加QWebEngine 模块
2、项目→鼠标右键→属性配置
- C/C++ → 常规 → 附加包含目录:
C:\Qt\6.6.3\msvc2019_64\include
- 链接器 → 常规 → 附加库目录:
C:\Qt\6.6.3\msvc2019_64\lib
- 链接器 → 输入 → 附加依赖项:
Qt6WebEngineWidgets.lib;
Qt6Core.lib;
Qt6Widgets.lib
链接的时候注意选择编译模式(Debug/Release),最好两个模式下都配置好。
代码示例
#include <QApplication>
#include <QWebEngineView>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QWebEngineView view;
view.load(QUrl("https://www.baidu.com"));
view.resize(800, 600);
view.show();
return app.exec();
}
通过以上步骤,可解决因模块缺失、库文件未链接或编译环境不一致导致的LNK2019错误。若问题仍未解决,建议检查Qt安装完整性或通过Qt Creator创建新项目对比配置差异。
三、其他注意事项
- 清理和重新生成项目:
执行清理解决方案
→重新生成解决方案
,避免缓存文件导致的问题。 - 检查代码中的声明与定义:
确保所有使用QWebEngineView
的类在头文件中正确声明,并在源文件中实现。 - 更新Qt和Visual Studio:
某些版本可能存在兼容性问题,建议升级到最新稳定版Qt和VS插件。 - 确保DLL文件可用
将Qt的动态库(如Qt6WebEngineWidgets.dll
、Qt6WebEngineCore.dll
等)复制到可执行文件(.exe
)所在目录,或将其路径加入系统环境变量PATH
。
- 检查编译器与Qt版本一致性
确认项目使用的编译器版本(如MSVC 2019)与Qt安装的版本一致。