Qt-Web混合开发-QWebEngineView加载网页最小示例(1)

news2024/12/30 2:04:14

Qt-Web混合开发-QWebEngineView加载网页最小示例💥

文章目录

  • Qt-Web混合开发-QWebEngineView加载网页最小示例💥
    • 1、概述💯
    • 2、实现效果💦
    • 3、实现功能💬
    • 4、关键代码💤
    • 5、源代码🙈

更多精彩内容
👉个人内容分类汇总 👈
👉Qt - Web混合开发👈

1、概述💯

  • Qt版本:V5.12.5

  • 注意:windows下webenginewidgets只支持MSVC编译器,不支持MinGW(mingw好像需要自己编译);

  • 什么是Qt WebEngine(除了QtWebEngine外,也可以使用其它浏览器内核进行混合开发,例如cef、miniblink)

    1. Qt WebEngine模块是Qt提供了一个 Web 浏览器引擎,可以轻松地将Web网页中的内容嵌入到没有本机 Web 引擎的平台上的 Qt 应用程序中;
    2. QtWebEngine提供C++类和QML类型,用于呈现HTML、XHTML和SVG文档,使用级联样式表(CSS)进行样式设置,并使用JavaScript编写脚本;
    3. 通过使用HTML元素上的属性,用户可以完全编辑HTML文档;
    4. Qt WebEngine是基于Chromium浏览器引擎实现的;
    5. 我使用的是Qt5.12.5版本,这个版本的Qt WebEngine基于Chromium版本69.0.3497.128,目前github上最新的chromium版本是110.0.5473.0,而69.0.*版本是18年的时候出的,现在比较老了;
  • 为什么要使用QtWebEngine

    1. 使用html + css + JavaScript 可以很轻松的开发出精美的界面、动画效果,而如果使用Qt C++非常难实现;
    2. 可以直接使用很多js的库,例如ECharts,可以实现非常多的精美图表;
    3. web开发天然跨平台,更适合跨平台开发;
  • Qt + web混合开发缺点

    1. 对于需要频繁绘制,高刷新率的界面,web界面的性能还是要低于C++;
    2. QtWebEngine目前感觉不太稳定,教程出现背景黑屏、闪屏、鼠标坐标混乱等问题(大部分是系统显卡驱动过低导致的);

2、实现效果💦

在这里插入图片描述

3、实现功能💬

  1. 使用QWebEngineView加载显示Web页面的最小示例;
  2. 保留最简单功能,去掉不易于理解的功能;
  3. 分别演示了加载网络地址、资源文件中的Html文件,本地html的方式;
  4. 详细的注释,对初学者更友好。

4、关键代码💤

  • pro文件
QT += webenginewidgets    # 使用QWebEngineView需要加载模块
  • hello.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>本地Html文件</title>
</head>
<body>

<h1 align="center" style="font-size:80px; color:red;">hello </h1>
<p align="center" style="font-size:70px; color:blue;">world</p>

</body>
</html>
  • main.cpp
#include <QApplication>
#include <QDir>
#include <QWebEngineView>

#define DEMO 0    // 通过修改DEMO值 为0、1、2使用不同的演示代码

int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);  // 在支持的平台上启用Qt中的高DPI缩放
    QApplication a(argc, argv);

    QWebEngineView view;  // 创建一个用于加载显示、编辑Web页面的Widget
    view.setWindowTitle(QString("QWebEngineView最小示例 - V%1").arg(APP_VERSION));  // 设置窗口标题
    // 使用setUrl和load都一样
#if DEMO == 0
    view.setUrl(QUrl("https://www.baidu.com"));      // 网址:原文中使用QStringLiteral("https://www.qt.io")创建,但是这里只是创建一次,没必要
#elif DEMO == 1
    view.setUrl(QUrl("qrc:/hello.html"));            // 资源文件:如果html文件在资源文件中,这里【qrc】不能少
#elif DEMO == 2
    view.setUrl(QDir("hello.html").absolutePath());  // 当前路径:如果html文件不在资源文件中,这里需要使用【绝对路径】
#endif

    view.resize(1024, 750);
    view.show();

    return a.exec();
}

5、源代码🙈

  • gitee
  • github

◽️◽️◽️◽️◽️◽️◽️◽️◽️⬛⬛⬛◽️◽️◽️◽️◽️◽️◽️◽️◽️
◽️◽️◽️◽️◽️◽️◽️◽️⬛🟩🟩🟩⬛◽️◽️◽️◽️◽️◽️◽️◽️
◽️◽️◽️◽️◽️◽️◽️◽️⬛⬛⬛⬛⬛◽️◽️◽️◽️◽️◽️◽️◽️
◽️◽️⬛⬛⬛⬛◽️⬛🟨🟨🟨🟨🟨⬛◽️⬛⬛⬛⬛◽️◽️
◽️⬛🟨🟨🟨🟨⬛🟨🟧🟨🟨🟨🟧🟨⬛🟨🟨🟨🟨⬛◽️
◽️⬛🟧🟨🟨🟧🟨🟧🟨🟨🟧🟨🟨🟧🟨🟧🟨🟨🟧⬛◽️
⬛🟧🟨🟨🟧🟨⬛🟨🟧🟧🟧🟧🟧🟨⬛🟨🟧🟨🟨🟧⬛
⬛🟧🟧🟧🟨⬛⬛⬛🟧🟧🟧🟧🟧⬛⬛⬛🟨🟧🟧🟧⬛
⬛🟧🟧🟧🟨⬛⬛⬛🟧🟧🟧🟧🟧⬛⬛⬛🟨🟧🟧🟧⬛
⬛🟧🟧🟧🟨⬛⬛⬛🟧🟧🟧🟧🟧⬛⬛⬛🟨🟧🟧🟧⬛
⬛🟧🟧🟧🟧🟧⬛🟧🟧🟨🟨🟨🟧🟧⬛🟧🟧🟧🟧🟧⬛
⬛🟧🟧🟧🟨🟨🟧🟧🟨⬛⬛⬛🟨🟧🟧🟨🟨🟧🟧🟧⬛
⬛🟧🟧🟨⬛⬛🟧🟧🟧🟧⬛🟧🟧🟧🟧⬛⬛🟨🟧🟧⬛
⬛🟧🟧🟨⬛🟨🟧🟨🟧🟨🟧🟨🟧🟨🟧🟨⬛🟨🟧🟧⬛
◽️⬛🟧🟨⬛⬛🟨⬛🟨⬛🟨⬛🟨⬛🟨⬛⬛🟨🟧⬛◽️
◽️⬛🟧🟧🟧🟧⬛⬛⬛⬛⬛⬛⬛⬛⬛🟧🟧🟧🟧⬛◽️
◽️◽️⬛⬛🟧🟧🟧🟧🟧🟧🟧🟧🟧🟧🟧🟧🟧⬛⬛◽️◽️
◽️◽️◽️◽️⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛◽️◽️◽️◽️
◽️◽️◽️◽️◽️◽️⬛🟪⬛🟪⬛🟪⬛🟪⬛◽️◽️◽️◽️◽️◽️
◽️◽️◽️◽️◽️⬛🟪🟪⬛🟪🟪🟪⬛🟪🟪⬛◽️◽️◽️◽️◽️
◽️◽️◽️◽️⬛🟪🟪⬛🟪🟪🟪🟪🟪⬛🟪🟪⬛◽️◽️◽️◽️
◽️◽️◽️⬛🟪🟪🟪⬛🟪🟪🟪🟪🟪⬛🟪⬛🟨⬛◽️◽️◽️
◽️◽️◽️⬛⬛🟪⬛🟪🟪🟪🟪🟪🟪🟪⬛🟧🟧🟨⬛◽️◽️
◽️◽️◽️◽️⬛⬛⬛🟪🟪🟪🟪🟪🟪⬛🟨🟧🟧⬛◽️◽️◽️
◽️◽️◽️◽️◽️◽️⬛🟪🟪🟪🟪🟪🟪🟪⬛🟨⬛◽️◽️◽️◽️
◽️◽️◽️◽️◽️⬛🟪🟪🟪🟪🟪🟪🟪🟪🟪⬛◽️◽️◽️◽️◽️
◽️◽️◽️◽️◽️⬛🟪🟪🟪🟪🟪🟪🟪🟪🟪⬛◽️◽️◽️◽️◽️
◽️◽️◽️◽️◽️◽️⬛⬛⬛⬛⬛⬛⬛⬛⬛◽️◽️◽️◽️◽️◽️
◽️◽️◽️◽️◽️◽️◽️◽️⬛⬛◽️⬛⬛◽️◽️◽️◽️◽️◽️◽️◽️
◽️◽️◽️◽️◽️◽️◽️◽️⬛⬛◽️⬛⬛◽️◽️◽️◽️◽️◽️◽️◽️
🟪🟪🟪🟪🟪🟪🟪🟪⬛◽️◽️◽️◽️◽️
◽️◽️◽️◽️◽️◽️⬛⬛⬛⬛⬛⬛⬛⬛⬛◽️◽️◽️◽️◽️◽️
◽️◽️◽️◽️◽️◽️◽️◽️⬛⬛◽️⬛⬛◽️◽️◽️◽️◽️◽️◽️◽️
◽️◽️◽️◽️◽️◽️◽️◽️⬛⬛◽️⬛⬛◽️◽️◽️◽️◽️◽️◽️◽️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/83228.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【20天快速掌握Python】day01-Python入门

1、什么是Python&#xff1f; Python是一门解释型的编程语言&#xff0c;而且是现在世界上最流行的编程语言之一。 2、Python优缺点 优点 简单&#xff1a;Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样&#xff0c;尽管这个英语的要…

driftingblues靶机(0ok编码)

环境准备 靶机链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;oylc 虚拟机网络链接模式&#xff1a;桥接模式 攻击机系统&#xff1a;kali linux 2021.1 信息收集 1.探测目标靶机ip arp-scan -l 2.探测目标靶机开放端口和服务情况 nmap -A -sV -p- 192.168.…

SpringCloud之微服务环境搭建

目录 1、微服务介绍 1.1.微服务架构介绍 1.2.微服务架构的常见问题 1.3.微服务架构的常见解决方案 1.3.1.ServiceComb ​ 1.3.2.SpringCloud 1.3.3.SpringCloud Alibaba 2、微服务环境搭建 2.1案例准备 技术选项&#xff1a; 模块设计&#xff1a; …

pyqt5打包后的exe文件在网吧windoes7系统运行报错问题

方案一 用录屏软件录个视频&#xff0c;然后用播放软件打开逐帧查看&#xff0c;找到报错原因&#xff0c;一般是某个包导入错误&#xff0c;重新安装下对应的包。(忒麻烦) 方案二 生成的exe文件你们执行的话&#xff0c;cmd黑框肯定会一闪而过&#xff0c;但是没有关系&…

[附源码]Nodejs计算机毕业设计基于Java的在线点餐系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

使用 VADER 对股票新闻进行情绪分析

什么是情感分析&#xff1f; 提示&#xff1a;情感分析 定义&#xff1a; 情感分析或意见挖掘是自然语言处理 (NLP)的一个子领域&#xff0c;它试图在给定文本中识别和提取意见。情感分析的目的是根据文本中主观性的计算处理来衡量说话者/作者的态度、情绪、评价、态度和情绪…

WIN10 共享文件夹并取消密码访问

目录 一、前言 二、共享文件过程 1、选择需要共享的文件夹右键-授予访问权限-特定用户 2、选择共享用户Everyone并点击添加 3、再点击右下角共享&#xff0c;一个共享目录就生成了 4、但是别人访问还需要提供密码&#xff0c;非常不方便&#xff0c;此时需要关闭密码 一、…

DataHub Docker安装 PostreSQL元数据集成

install docker & docker-compose&#xff0c;包括docker-compose升级 curl -L https://github.com/docker/compose/releases/download/v2.14.0/docker-compose-uname -s-uname -m-o /usr/local/bin/docker-compose install jq wget http://dl.fedoraproject.org/pub/epel…

前端大文件上传及切片上传-提升上传效率

一、使用场景&#xff1a; 1.大文件上传 2.网络环境环境不好&#xff0c;存在需要重传风险的场景 二、名词解释&#xff1a; 切片上传&#xff1a;也叫分片上传&#xff0c;就是将所要上传的文件&#xff0c;按照一定的大小&#xff0c;将整个文件分隔成多个数据块来进行分…

【Docker】Docker如何构建自己的镜像?从镜像构建到推送远程镜像仓库图文教程

专栏往期文章 《Docker是什么&#xff1f;Docker从介绍到Linux安装图文详细教程》《30条Docker常用命令图文举例总结》 本期目录专栏往期文章1. 构建镜像2. 本地镜像发布到公有云3. 本地镜像发布到私有云1. 构建镜像 提交构建镜像的命令如下&#xff1a; $ docker commit -m…

大二学生《web课程设计》中华英雄人物介绍袁隆平HTML+CSS+JavaScript(期末考核大作业)

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

2021年网络安全省赛--服务器内部信息获取解析(中职组)

2021年省赛服务器内部信息获取解析 任务环境说明:Linux20210510 服务器场景操作系统:未知 (关闭连接) 服务器场景操作系统:Linux(封闭靶机) 用户名:test密码:123456 1.收集服务器场景中的服务信息。并获取服务器中开放的端口号信息,将服务器端口号作为flag提交…

GCN解读并附数据处理代码

此文GCN不是之前提到的lightGCN&#xff0c;而是真正的GCN图卷积&#xff0c;这个问题源于paper分类&#xff0c;同样是GAT所用的数据&#xff0c;其中paper之前的引用关系构成了图的边信息&#xff0c;之所以称之为半监督,并不是因为部分paper没有label及embedding信息&#x…

Nacos--命名空间、分组、ID的概念及用法

原文网址&#xff1a;Nacos--命名空间、分组、ID的概念及用法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Nacos的命名空间、分组、ID的概念及用法。 Nacos通过命名空间&#xff08;Namespace&#xff09;分组&#xff08;Group&#xff09;应用&#xff08;Data ID或Name&#…

在Maix duino开发板上实现LED闪烁

文章目录简单介绍编程实现效果展示后简单介绍 如果你还不知道如何点亮LED&#xff0c;请看&#xff1a;点亮LED 今天开始上手在开发板上运行程序了&#xff0c;学习点亮LED灯就像是学习编程语言的Hello,worldHello, worldHello,world。学会电亮一盏LED灯之后&#xff0c;我便…

深度学习中计算量和参数量介绍、实现代码、例子

计算量 参数量 模型内存前言1 计算量和参数量2 统计计算量、参数量和模型内存3 源码分享3.1 thop实现3.2 ptflops实现pytorch_model_summary实现各层参数量统计4 总结前言 理清FLOPS和FLOPs&#xff0c;大写S代表的是显卡的运算性能&#xff0c;小写s代表的是模型的运算次数&a…

异构混排在vivo互联网的技术实践

作者&#xff1a;vivo 互联网算法团队- Shen Jiyi 本文根据沈技毅老师在“2022 vivo开发者大会"现场演讲内容整理而成。 混排层负责将多个异构队列的结果如广告、游戏、自然量等进行融合&#xff0c;需要在上下游和业务多重限制下取得最优解&#xff0c;相对复杂和难以控制…

基于外业移动端GIS+CAD在工程行业中的应用

摘要&#xff1a; 本文以广东九建某某高校施工项目前期准备和施工验证工作为依托&#xff0c;以图新地球精准导入CAD为研究对象&#xff0c;总结了一套相对成熟且完善的应用技术。该应用技术能在实际地形和现状数据中迅速找到施工点的大致位置&#xff0c;为前期工程勘测争取足…

【云原生消息中间件】RocketMQ消费者启动(consumer start)流程

目录 一、前言 二、消费者启动(consumer start)流程 1、RocketMQPushConsumer初始化 1.1、InitializingBean的afterPropertiesSet() 实现 1.2、RocketMQPushConsumer初始化 2、DefaultMQPushConsumer#start()逻辑 3、defaultMQPushConsumerImpl.start()逻辑 3.1、预设置…

哈希表题目:“气球”的最大数量

文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析题目 标题和出处 标题&#xff1a;“气球”的最大数量 出处&#xff1a;1189. “气球”的最大数量 难度 2 级 题目描述 要求 给你一个字符串 text\texttt{text}text&#xff0c;你需要…