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

news/2024/11/29 20:46:15/

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

文章目录

  • Qt-Web混合开发-QWebEngineView加载网页最小示例 2🌍
    • 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. 分别演示了【QWebEngineView::setHtml】【QWebEngineView::setContent】的使用方法;
    1. setHtml用法1:可直接显示html代码;
    2. setHtml用法2:使用参数2指定一个地址,在参数1的html中可使用相对路径引用参数2地址中的资源;
    3. setContent用法:setContent的使用和setHtml差不多,setHtml就是调用了setContent。
  4. 详细的注释,对初学者更友好。

4、关键代码🚚

  • pro文件
QT += webenginewidgets    # 使用QWebEngineView需要加载模块
  • 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页面的Widgetview.setWindowTitle(QString("QWebEngineView最小示例 - V%1").arg(APP_VERSION));  // 设置窗口标题// setHtml内部调用的就是【setContent(html.toUtf8(), QStringLiteral("text/html;charset=UTF-8"), baseUrl);】
#if DEMO == 0QString  html("<h1 align='center' style='font-size:80px; color:red;'>hello </h1>");view.setHtml(html);    // 直接在QWebEngineView中显示Html代码#elif DEMO == 1// 百度搜索界面的图标地址 https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png// setHtml使用参数2 (baseUrl)后,可以在html代码中使用【相对路径】引用baseUrl中的资源QString html("<img src='/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png'/>");   // 注意:字符串html不能超过2MBview.setHtml(html, QUrl("https://www.baidu.com"));#elif DEMO == 2QString  html("<h1 align='center' style='font-size:80px; color:red;'>hello </h1>");view.setContent(html.toUtf8(), "text/html; charset=UTF-8");
#endifview.resize(1024, 750);view.show();return a.exec();
}

5、源代码🚀

  • gitee
  • github

(\ /)     (\ /)
(•ᴥ•)    (´•ᴥ•`)
(ᐢ ᐢ)  ❤️‍🔥~૮()૮ )o


http://www.ppmy.cn/news/3294.html

相关文章

Git系列之git tag

概述 Git可给仓库历史中的某一个提交打上标签&#xff0c;常用于标记发布结点。 本文使用的Git版本为&#xff1a; $ git --version git version 2.23.0.windows.1实战 列出标签 列出全部标签的命令为&#xff1a;git tag或git tag -l或git tag -list&#xff0c;即-l或-l…

Jmeter初了解-接口并发测试

Jmeter初了解-接口并发测试 介绍 我们在开发的时候&#xff0c;经常会需要进行接口压力测试&#xff0c;确定接口运行的稳定情况 这里我们就使用java开发的测试工具Jmeter来进行测试。 Jmeter 官网地址 Apache JMeter™应用程序是开源软件&#xff0c;是一个 100% 纯 Jav…

DDPM = 拆楼 + 建楼

Contents拆楼 (加噪)建楼 (生成)降低方差递归生成超参设置References下面将从 “拆楼-建楼” 的通俗类比中介绍生成扩散模型 DDPM&#xff0c;在这个视角中&#xff0c;我们可以通过较为 “大白话” 的描述以及比较少的数学推导&#xff0c;来得到跟原始论文一模一样的结果。总…

新手入门:调环境,快逼到玄学了该怎么办

又开始坐下来写东西的感觉真好再次说说调环境新学生的新问题以ipyvolume的调试为例再次说说调环境 新手入门&#xff0c;最难的莫过于环境安装。老手入新坑&#xff0c;亦是如此。 今天结合近两天的经历&#xff0c;再聊聊这个话题吧。 新学生的新问题 每年面对新到组里的孩…

使用小爱同学语音控制电脑关机 - Winform C#

使用小爱同学语音控制电脑变关机前言实现原理准备注册巴法云账号接入巴法云接入米家编写程序连接TCP接收信息并运行关机指令发送指令订阅主题添加心跳机制后台运行阻止默认关闭窗口事件完整代码前言 小爱同学应该已经是家喻户晓的了&#xff0c;现在一直用来控制家里的家电。于…

【学习笔记】SAP固定资产的减值功能

SAP固定资产的减值功能 若固定资产出现减值迹象&#xff0c;也就是固定资产的可收回金额小于账面价值时&#xff0c;就要计提固定资产减值准备。 分录&#xff1a; 借&#xff1a;资产减值损失&#xff08;损益科目&#xff09; 贷&#xff1a;固定资产减值准备&#xff08;资…

卷积神经网络入门

文章目录前言基本内容前言 本文是之前和同事一些分享的笔记&#xff0c;还在整理中&#xff0c;先贴一个版本&#xff0c;后续不断更正完善。 基本内容 ILSVRC&#xff1a;ImageNet Large Scale Visual Recognition Challenge 国际图像分类领域竞赛 LeNet&#xff08;深度&a…

六、JavaScript——变量的内存结构

一、内存 定义&#xff1a;内存是用于存储数据的地方&#xff0c;程序要执行一段代码&#xff0c;要先从硬盘加载到内存当中&#xff0c;再由内存发送给CPU,CUP才能对代码进行执行。 注&#xff1a;变量并不存储任何值&#xff0c;而是存储值的内存地址 JS定义一个变量 <s…