【QT进阶】Qt Web混合编程之CEF、QCefView简单介绍

往期回顾

【QT入门】Qt自定义控件与样式设计之自定义QLineEdit实现搜索编辑框-CSDN博客

【QT入门】Qt自定义控件与样式设计之自定义QTabWidget实现tab在左,文本水平的效果-CSDN博客

【QT进阶】Qt Web混合编程之CEF、QCefView简单介绍

一、web组件

Web组件是一种用于构建Web应用程序的独立、可重用的元素。它们通常包含了HTML、CSS和JavaScript代码,用于实现特定的功能或展示特定的内容。Web组件有助于将Web应用程序拆分成更小的、可维护的部分,提高了代码的可读性、可维护性和复用性。

常见特点:

|-------|---------------------------------------------------------|
| 独立性: | Web组件是独立的元素,可以在不同的页面或应用程序中重复使用,从而减少重复编写代码的工作量。 |
| 封装性: | Web组件将HTML、CSS和JavaScript封装在一起,形成一个独立的单元,有助于减少代码之间的耦合性。 |
| 可定制性: | Web组件通常提供了一些接口或属性,允许开发者根据需要进行定制和配置,以适应不同的使用场景。 |
| 互动性: | Web组件可以包含交互式的元素和功能,使用户能够与页面进行交互,提升用户体验。 |

目前来说,绝大多数web技术都是基于chrome,例如CEF、QCefView以及QWebEngineView等,这些都是在native界面里用来显示html网页,并且可以与web交互,例如常见的登录窗口,优酷的视频区域、WPS的稻壳商城等,这些都是用web技术实现的,而native端,只需要把网页展示出来,实现交互即可。

二、CEF (Chromium Embedded Framework)

cef是一个开源项目,提供了一个基于Chromium内核的嵌入式浏览器框架,可以让开发者在自己的应用程序中集成浏览器功能。

CEF提供了一种简单的方式来展示网页内容,并且支持JavaScript、HTML5、CSS、SVG等现代Web技术。CEF提供了许多方便的API,使开发者可以轻松地实现浏览器功能,比如加载网页、JavaScript 执行、Cookie 管理等。

后面我们将详细介绍cef在vs2019中的编译与使用。

三、QCefView

QCefView 是一个基于 CEF 的 Qt 框架的封装库,可以让开发者在Qt应用程序中集成Chromium 内核的浏览器功能。QCefView提供了一些方便的接口和工具,使得在Qt程序中嵌入浏览器变得更加简单。

在使用QCefView时,开发者可以利用Qt的强大功能和CEF的浏览器引擎,快速地开发出具有浏览器功能的应用程序,比如内置浏览器、在线帮助文档、网页编辑器等。通过使用QCefView,开发者可以更加轻松地实现复杂的浏览器功能,同时保持Qt应用程序的整体风格和一致性。

示例:

我们在本示例中创建一个QWidget作为主窗口,然后创建一个QCefView对象,并加载百度网页。最后将QCefView添加到主窗口中,并显示主窗口。

#include <QApplication>
#include <QWidget>
#include "qcefview.h"

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    // 创建一个 QWidget 作为主窗口
    QWidget window;
    window.setWindowTitle("QCefView Example");
    window.resize(800, 600);

    // 创建一个 QCefView 对象
    QCefView cefView(&window);
    cefView.loadUrl("https://www.baidu.com");

    // 将 QCefView 添加到主窗口中
    QVBoxLayout layout(&window);
    layout.addWidget(&cefView);

    window.show();

    return app.exec();
}

以上就是CEF、QCefView的简单介绍。

都看到这里了,点个赞再走呗朋友~

加油吧,预祝大家变得更强!

相关推荐
wn53120 分钟前
【Go - 类型断言】
服务器·开发语言·后端·golang
Hello-Mr.Wang32 分钟前
vue3中开发引导页的方法
开发语言·前端·javascript
救救孩子把35 分钟前
Java基础之IO流
java·开发语言
WG_1736 分钟前
C++多态
开发语言·c++·面试
宇卿.43 分钟前
Java键盘输入语句
java·开发语言
Amo Xiang1 小时前
2024 Python3.10 系统入门+进阶(十五):文件及目录操作
开发语言·python
friklogff1 小时前
【C#生态园】提升C#开发效率:深入了解自然语言处理库与工具
开发语言·c#·区块链
重生之我在20年代敲代码2 小时前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
爱上语文2 小时前
Springboot的三层架构
java·开发语言·spring boot·后端·spring
编程零零七4 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql