您的位置:

QtCEF——整合Chromium内核的QT扩展

一、概述

QtCEF是QT的一个扩展库,可以将Chromium的内核嵌入到QT程序中,实现基于Web的应用。它是在Qt下封装了CEF(Chromium Embeded Framework)库,它是一个将Chromium嵌入到其他应用程序中的框架。

二、特点

QtCEF具有以下特点:

1、与QT完美集成,满足QT开发需求;

2、使用CEF嵌入Chromium内核,具有比较少的资源占用;

3、提供简单的API,易于使用;

4、具有良好的跨平台兼容性;

三、使用方法

1、环境配置

首先需要配置Qt和CEF运行环境,具体步骤为:

1、安装Qt开发环境;

2、下载CEF文件,解压后将“Release”文件夹中的文件拷贝到Qt安装目录下的“Tools”目录中;

3、在工程文件.pro文件中添加如下项:

 
INCLUDEPATH += $${CEF_BASE_DIR}/include
LIBS += -L$${CEF_BASE_DIR}/Release -lcef_sandbox -lcef -lcef_dll_wrapper -lcef_libcef_dll_wrapper -lEGL -lGLESv2
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

其中$${CEF_BASE_DIR}为CEF的安装目录。

2、在QT中使用QtCEF

下面是一个简单的QtCEF使用示例:

 
#include "client.h"
#include "include/cef_app.h"
#include "include/wrapper/cef_helpers.h"

int main(int argc, char *argv[])
{
    CefMainArgs mainArgs(argc, argv);
    CefRefPtr<ClientApp> app(new ClientApp);
    int exitCode = CefExecuteProcess(mainArgs, app.get(), nullptr);
    if (exitCode >= 0) 
    {
        return exitCode;
    }

    CefSettings settings;
    settings.multi_threaded_message_loop = true;
    CefInitialize(mainArgs, settings, app.get(), nullptr);
    CefRunMessageLoop();
    CefShutdown();

    return 0;
}

以上代码即是一个QtCEF的简单使用实例,其中ClientApp类可以自行定义。

四、总结

QtCEF是一个非常优秀的将Chromium内核集成到QT框架中的库,具有易用、跨平台、资源占用少等优点。在Web应用方面具有很大的潜力。