Qt Cef
hp_cpp
这个作者很懒,什么都没留下…
展开
-
Qt+Cef3离屏渲染(二)
还是以windows上vs2017 release版本运行的程序为例。接上一篇,我们只是将离屏渲染的每一帧图片QImage,以异步事件的方法发送到了目标QWiget上,然后再将QImage绘制到屏幕上。留下了一些待处理的问题:滚轮事件鼠标的点击事件鼠标hover到链接上,鼠标形状的变化键盘输入输入框的右键弹出层我们这篇博客就围绕这些问题进行处理。一、离屏渲染的滚轮事件的处理滚轮事件的处理最为简单。在CefOSRWidget头文件中:protected: //其余代码与前面一篇相原创 2020-12-19 10:34:43 · 2940 阅读 · 5 评论 -
Qt+Cef3离屏渲染(一)
离屏渲染(Off-Screen Rendering)在离屏渲染模式下,CEF不会创建原生浏览器窗口。CEF为宿主程序提供无效的区域和像素缓存区,而宿主程序负责通知鼠标键盘以及焦点事件给CEF。离屏渲染目前不支持混合加速,所以性能上可能无法和非离屏渲染相比。离屏浏览器将收到和窗口浏览器同样的事件通知,下面介绍如何使用离屏渲染:(1)实现CefRenderHandler接口。除非特别说明,所有的方法都需要覆写。调用CefWindowInfo::SetAsOffScreen(),将CefWindowInf原创 2020-12-19 10:34:32 · 7983 阅读 · 19 评论 -
Cef3中js与C++交互(六)—— JS异步回调
官方文档:Asynchronous JavaScript Bindingsgithub上一个比较好的例子:https://github.com/fanfeilong/cefutil/blob/master/doc/CEF_JavaScript_Cpp.md另外参考了这篇文章:CEF:C++和JS交互原创 2020-09-16 21:06:29 · 1036 阅读 · 3 评论 -
Cef3中js与C++交互(五)—— JS简单回调
Native code can execute JS functions by using the ExecuteFunction()and ExecuteFunctionWithContext() methods. The ExecuteFunction() methodshould only be used if V8 is already inside a context as described inthe “Working with Contexts” section. The Execu.原创 2020-09-16 20:50:58 · 1836 阅读 · 0 评论 -
Cef3中js与C++交互(四)——CefV8Accessor
JS对象可选择使用一个与之关联的CefV8Accessor以提供一个源生的getting和setting值的实现套路:CefRefPtr<CefV8Accessor> accessor = …;CefRefPtr<CefV8Value> obj = CefV8Value::CreateObject(accessor);接下来就是继承CefV8Accessor,重写Get和Set接口class MyV8Accessor : public CefV8Accessor {pu原创 2020-09-16 19:38:01 · 1846 阅读 · 0 评论 -
Cef3中js与C++交互(三)——JS扩展
注册新的V8扩展关联指定的js扩展像window绑定一样除了为每个框架 加载到上下文之外,一旦加载就不能修改,当一个扩展已经加载并试图在扩展加载中访问DOM就会出现DOM不存在的crash。扩展应该在CefRenderProcessHandler::OnWebKitInitialized()函数中使用CefRegisterExtension函数注册。看看官方的例子:void MyRenderProcessHandler::OnWebKitInitialized() { // Define the原创 2020-09-16 14:51:16 · 1218 阅读 · 0 评论 -
Cef3中js与C++交互(二)——window绑定JS函数
Ce3中的JS函数CEF supports the creation of JS functions with native implementations.Functions are created using the CefV8Value::CreateFunction() staticmethod that accepts name and CefV8Handler arguments. Functions canonly be created and used from within a原创 2020-09-16 11:09:18 · 2140 阅读 · 0 评论 -
Cef3中js与C++交互(一)——窗口绑定
看了网上的一些博客和教程,还是有点迷糊。再回头看官方文档https://bitbucket.org/chromiumembedded/cef/wiki/JavaScriptIntegration.md还自己用例子来验证吧。Qt工程中的目录结构,VS2017编译器(Qt用的是Qt5.14.2)这里的文件都和之前的一样,我这里就不再赘述了,我会放到百度云上,大家下载下来看就一目了然了。simple_app.h#pragma once#include "include/cef_app.h"原创 2020-09-15 21:29:12 · 2232 阅读 · 0 评论 -
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",不科原创 2020-09-15 16:17:14 · 2021 阅读 · 13 评论 -
编译Qt vs版本的Cef库,利用二进制包进行编译
CEF二进制下载链接:Chromium Embedded Framework (CEF) Automated Builds目前是用vs2017编译x64的包给Qt用(windows上用mingw需要自己改源码,github上有个成功的例子)编译过程:下载页面:http://opensource.spotify.com/cefbuilds/index.html#windows64_builds下载链接:Standard DistributionStandard cef_binary_75.0.1原创 2020-07-28 21:27:16 · 1366 阅读 · 5 评论