qt集成cef的项目:qcefview

官方网址:QCefView | QCefView

Github地址:GitHub - CefView/QCefView: A Qt Widget encapsulated CEF view based on QWidget

git地址:GitHub - CefView/QCefView: A Qt Widget encapsulated CEF view based on QWidget

克隆仓库QCefView

git clone https://github.com/CefView/QCefView.git

然后进入QCefView文件夹,执行

 git submodule  update  --init  --recursive

这样可以拉下来子仓库克隆CefViewCore

编译步骤

Building Instruction | QCefView

 本人使用qt5.9.8 + vs 2017

下载CEF二进制发行文件

        下载的源码中默认会有一个构造依据的版本,如果没有自己的特殊需求,可以忽略本步骤,如果有,需要将dep目录中加入对应文件;cef下载地址 CEF Automated Builds.

下载后解压放置到该目录

 修改CefConfig.cmake 中对应的配置项

C:\QCefView\CefViewCore 中config.cmake 如后者,本人编译时的32位

配置qt的路径

 修改QtConfig.cmake中对应的配置项,路径C:\QCefView下

修改CMakeLists.txt ,路径C:\QCefView下 ,设置生成demo

重置提交点 

最新的代码 我这里编译不过,因此将提交点重置为

QCefView:c989cddd78552a9ad67a8d71a5012a8f3f6960f2

QCefView\CefViewCore:d01c351b2d02a8aa1a00f347ffec8f05e497425f

使用CMake构建项目

在QCefView目录下 ,没有安装cmake需要先安装cmake

mkdir build && cd build
cmake .. 

打开:

本人编译的是release 32位

在编译CegViewCore工程时,会报错:std::tolower ,处理如下,去掉std::

其中在编译QtCefViewTest工程时,会报错QRandomGenerator的问题,本人的qt版本不是最新的,因此将其注释掉,处理如下

最后将QcefViewTest设置为启动项目:编译

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CEF(Chromium Embedded Framework)是一个基于Chromium的开源框架,主要用于嵌入式浏览器应用程序的开发。Qt是一个跨平台的C++应用程序开发框架,提供了许多GUI和多媒体功能。在以下步骤中,我们将介绍如何将CEFQt集成。 1. 下载CEF 首先,需要从CEF官网(https://cefsharp.github.io/)下载适合您操作系统的CEF版本。您可以选择标准版本或使用NuGet包。 2. 创建Qt项目 使用Qt Creator创建一个新的Qt项目。在项目设置中,确保您已选择正确的构建工具链和平台。在.pro文件中添加以下内容: ``` LIBS += -L/path/to/cef -lcef INCLUDEPATH += /path/to/cef ``` 其中,`/path/to/cef`是CEF的安装路径。 3. 集成CEFQt项目中,您可以使用CEF的C API或C++ API。在本例中,我们将使用C++ API。 首先,将CEF的C++头文件添加到Qt项目中。在您的Qt项目中创建一个新的C++源文件,并使用以下代码初始化CEF: ``` #include "include/cef_app.h" #include "include/cef_browser.h" #include "include/cef_client.h" class CefApplication : public CefApp, public CefBrowserProcessHandler { public: // Implement CefApp methods here }; CefRefPtr<CefApplication> app(new CefApplication); CefMainArgs mainArgs(argc, argv); CefInitialize(mainArgs, app, NULL); ``` 这将初始化CEF并创建一个CEF应用程序。 接下来,您需要创建一个CEF客户端类。客户端类处理浏览器事件和渲染进程事件。以下是一个简单的CEF客户端类: ``` class CefClientImpl : public CefClient, public CefLifeSpanHandler { public: // Implement CefClient and CefLifeSpanHandler methods here }; CefRefPtr<CefClientImpl> client(new CefClientImpl); ``` 最后,将CEF嵌入到Qt应用程序中。在Qt应用程序的主窗口中,将CEF嵌入到QWidget中: ``` CefWindowInfo windowInfo; windowInfo.SetAsChild(reinterpret_cast<cef_window_handle_t>(widget->winId()), CefRect(0, 0, width, height)); CefBrowserSettings browserSettings; CefBrowserHost::CreateBrowserSync(windowInfo, client.get(), "http://www.google.com", browserSettings, NULL); ``` 这将在Qt应用程序的QWidget中创建一个CEF浏览器。 4. 运行应用程序 现在,您可以运行Qt应用程序并查看CEF浏览器。使用Qt的GUI控件可以与CEF浏览器进行交互,例如在Qt窗口中显示CEF浏览器的网页内容,或在CEF浏览器中嵌入Qt控件。 注意:在集成CEF时,需要考虑QtCEF的线程模型。Qt使用主线程作为GUI线程,而CEF使用多个线程处理浏览器事件和渲染进程事件。因此,在使用CEF时,需要确保在正确的线程上执行GUI操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值