文章目录
QCefView官方介绍
QcefView是什么?
QCefView是为Qt框架开发的一个封装集成了Chromium Embedded Framework库的Wdiget UI组件。使用QCefView可以充分发挥CEF丰富强大的Web能力,快速开发混合架构的应用程序。使用Qt开发者熟悉的Forms,signal/slot来开发应用,方便直观的Javascript/C++互操作方式。
为何选择QCefView而不用Electron?
从设计思路和最终形态来讲QCefView和Electron是完全不同的技术。
QCefView只是一个为Qt框架开发的UI组件,Electron则是一个功能完备的应用开发框架。
QCefView是为Native系统开发者设计的,Electron对前端开发者更友好。
QCefView使用C++作为主要开发语言,Electron全部基于Javascript。
QCefView提供便捷直观的Javascript/C++互操作方式,Electron通过编写插件实现Web/Native互操作。
QCefView适合开发何种类型的应用?
如果你打算使用Web前端技术来开发你的应用UI,同时保持使用Native方式编写核心业务/功能逻辑,QCefView是最佳选择。例如:音乐/视频播放器、游戏平台、工具类应用等等……以上场景中的应用几乎都是基于内容的平台,他们都需要展示很多列表,表格或者有各种复杂特效的页面。基于此种目的,Web前端技术是目前的最好的选择,把UI当作Web前端App来开发,而核心的功能和逻辑仍然使用Native的方式来编写,然后通过QCefView整合,能极大的提升生产效率,并且一份UI代码适配所有主流桌面平台。
如果你打算开发一款浏览器,QCefView并不是较好的选择,因为QCefView设计的目的是UI组件,并不提供作为浏览器的全部特性,该类需求应该使用原生CEF来实现较好。
说明
以上QCefView介绍来自官网:https://cefview.github.io/QCefView/zh/docs/intros
github地址:https://github.com/CefView/QCefView
编译QCefView
环境说明
我使用编译QCefView的环境是Win10+VS2019+Qt5.15.2,QCefView通过CMake管理项目构建,所以请先安装CMake。最低要求版本为3.19.1,推荐使用最新版本。
Qt环境变量设置
QCefView是基于Qt框架的,同时支持Qt 5.x和6.x版本。安装Qt之后请确保设置了QTDIR环境变量,使其指向Qt工具链目录,例如:

下载QCefView源码
从https://github.com/CefView/QCefView下载最新代码,因为该项目依赖于子模块CefViewCore,所以需要递归克隆该项目,如果不递归克隆子项目的话,则QCefView目录下面的CefViewCore里面是空的,使用以下git命令clone,项目分支如下:
git clone --recursive https://github.com/CefView/QCefView.git

更换CEF版本
打开QCefView\QCefView\CefViewCore\CMakeLists.txt文件,这个CMake中写的是最新的CEF版本,我把他注释掉了,更换了一个版本。如果选择的CEF目标版本较旧,或者较新(引入了破坏性的接口变更等),可能导致编译失败,此种情况则需要自行修改CefViewCore的代码来进行适配。
下载CEF
进入CEF Automated Builds网站:https://cef-builds.spotifycdn.com/index.html,输入110版本,点那个Show more builds,下载此版本。

然后将下载好的CEF版本放入以下目录:QCefView\QCefView\CefViewCore\dep
编译
编译是基于CMAKE编译的,我使用的是CMAKE命令行编译,当然也可以使用CMAKE的GUI工具。进入QCefView源码根目录,然后文件地址栏输入cmd,进入命令行。编译脚本都给我们写好了,只需要敲一下就行。
输入该命令:generate-win-x86_64.bat
这个脚本大概干的活就是判断当前的系统,然后判断有没有那个CEF包,有的话就解压,没有的话就上官网下载去了,因为我们提前下载好了,所以会给我们解压,然后生成VS能打开的工程
未定义标识符 “FILE_INFO_BY_HANDLE_CLASS”
然后找到QCefView\QCefView.build\windows.x86_64这个目录下的sln解决方案,使用VS2019打开,编译工程,然后不出意外的出意外了,编译失败,具体看下图。

后来经过几天问题的排查,意外的发现上面下载的CEF 110版本需要Win 10.0.20348的SDK,而我使用的是Win10.0.19041的SDK,就出现了未定义标识符的错误!!!!!
查看版本对应环境:https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding.md

想要解决这个问题很简单,需要什么咱就配置什么,那我们就去下载Win 10.0.20348的SDK呗,下载地址:https://developer.microsoft.com/zh-cn/windows/downloads/sdk-archive/,安装Win 10.0.20348的SDK过程就省略了。
安装成功之后使用VS2019打开sln解决方案,把这些全部改成Win 10.0.20348的SDK,右击项目->属性中,修改。
每一个都需要修改,否则还是会有错误。

修改完后,重新生成,编译成功咯!!!!

dll路径
编译生成的dll、lib都在QCefView\QCefView.build\windows.x86_64\output\Debug\bin这个目录下面。

网盘链接
链接: https://pan.baidu.com/s/1kUYBpQ4Br6rSVv3ySxpJ2g 提取码: qter
本文档详细介绍了如何在Windows环境下,使用VS2019和Qt5.15.2编译QCefView,一个基于Chromium Embedded Framework的Qt组件。内容包括环境准备、Qt环境变量设置、下载源码、更换CEF版本、下载并集成CEF、解决编译问题,以及编译后的dll和lib路径。此外,还提供了编译好的资源网盘链接。
982





