windows下Qt中的第一个Cef3程序

上一篇我们编译了vs2017版本的Cef3,记得那一步的需要修改成/MD,编译出Debug版本和Release版本。
我们还是以cef_binary_75.0.1+gb5e74dd+chromium-75.0.3770.80_windows64.tar.bz2这个版本为准。(原因见上一篇博客)。

我们修改simple_app.cc中的url为"http://www.baidu.com",否则会发现打开cefsimple.exe时半天显示不了网页。(原链接为"http://www.google.com",不科学上网,半天出现不了。)
在这里插入图片描述
我们以编译的x64 Release版本为例:
在这里插入图片描述
在VS2017中,设置cefsimple为启动项目,或者在在build文件夹下,双击cefsimple.exe打开。
注意观察这个目录的文件结构。
在CMake的输出窗口可以看到:
在这里插入图片描述
我把它稍微排版了一下:

CEF Binary files:             
	chrome_elf.dll;
	d3dcompiler_47.dll;
	libcef.dll;
	libEGL.dll;
	libGLESv2.dll;
	natives_blob.bin;
	snapshot_blob.bin;
	v8_context_snapshot.bin;swiftshader

CEF Resource files:           
	cef.pak;
	cef_100_percent.pak;
	cef_200_percent.pak;
	cef_extensions.pak;
	devtools_resources.pak;
	icudtl.dat;
	locales

这些都是我们将来编译的exe同级目录中需要的文件,有CEF二进制文件和CEF资源文件。

运行效果:
在这里插入图片描述
我们现在将把这个例子在Qt中实现出来。
我们新建一个Qt Widgets Application工程,保留ui文件。
在这里插入图片描述
就是一个布局加一个QWidget,命令为contentWidget
新看看工程的目录结构
在这里插入图片描述
在这里插入图片描述
这个include文件夹就在这里插入图片描述
lib存放我们编译出来的Debug版本库和Release库
在这里插入图片描述
其实我们编译的时候
在这里插入图片描述
这个cef_sandbox.lib在我们这个demo中用不到。
在这里插入图片描述
在这里插入图片描述
cef.pri是我们建立的一个文本文件,内容:


INCLUDEPATH += $$PWD
INCLUDEPATH += $$PWD/include

win32:CONFIG(debug, debug|release) {
   
    LIBS += $$PWD/lib/debug/libcef.lib \
            $$PWD/lib/debug/libcef_dll_wrapper.lib \
            user32.lib
}
else:win32:CONFIG(release, debug|release) {
   
    LIBS += $$PWD/lib/release/libcef.lib \
            $$PWD/lib/release/libcef_dll_wrapper.lib \
            user32.lib
}

这样我们就可以Debug版本和Release版本分别链接不同的lib库。

把vs工程中的

simple_app.h
simple_app.cc
simple_handler.h
simple_handler.cc

都拷贝到Qt工程中
注意修改:
在这里插入图片描述
在这里插入图片描述
在simple_handler.h中添加getCefBrowerList函数
在这里插入图片描述
simple_handler.cpp中添加函数定义:

std::list<CefRefPtr<CefBrowser> > SimpleHandler::getCefBrowerList()
{
   
    return browser_list_;
}

simple_handler.cc中有些地方需要注释掉,我们看看这个文件的全部代码:

// Copyright (c) 2013 The Chromium Embedded Framework Authors. All rights
// reserved. Use of this source code is governed by a BSD-style license that
// can be found in the LICENSE file.

#include "simple_handler.h"

#include <sstream>
#include <string>

#include "include/base/cef_bind.h"
#include "include/cef_app.h"
#include "include/views/cef_browser_view.h"
#include "include/views/cef_window.h"
#include "include/wrapper/cef_closure_task.h"
#include "include/wrapper/cef_helpers.h"

namespace {
   

SimpleHandler* g_instance = NULL;

}  // namespace

SimpleHandler::SimpleHandler(bool use_views)
    : use_views_(use_views), is_closing_
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值