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

news2024/10/6 8:31:29

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页面的Widget
    view.setWindowTitle(QString("QWebEngineView最小示例 - V%1").arg(APP_VERSION));  // 设置窗口标题

    // setHtml内部调用的就是【setContent(html.toUtf8(), QStringLiteral("text/html;charset=UTF-8"), baseUrl);】
#if DEMO == 0
    QString  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不能超过2MB
    view.setHtml(html, QUrl("https://www.baidu.com"));
    
#elif DEMO == 2
    QString  html("<h1 align='center' style='font-size:80px; color:red;'>hello </h1>");
    view.setContent(html.toUtf8(), "text/html; charset=UTF-8");
#endif

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

    return a.exec();
}

5、源代码🚀

  • gitee
  • github

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

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

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

相关文章

高斯定理的理解——工程电磁场 P2~P5

证明&#xff1a;静电场是无旋场 根据斯托克斯公式上式等于 电位的引入 由于静电场是无源场&#xff0c;我们可以得到 又因为 再结合电场的物理意义&#xff0c;我们可以定义 功函数表达式的化简 原先功函数表达式 高斯定律的理解 不管是导体还是电解质&#xff0c;对于电…

【图像处理】FAST、BRIEF、ORB算法原理

整理FAST、BRIEF、ORB算法的原理。 FAST算法 一、FAST简介 FAST&#xff08;features from accelerated segment test&#xff09;是一种角点检测算法&#xff0c;可以用于提取特征点&#xff0c;后来也长用于目标跟踪等计算机视觉任务中。FAST角点检测算法最初由 Edward Ro…

LL(1)文法分析程序

一、实验目的 设计一个非递归预测分析器&#xff0c;实现对表达式语言的分析&#xff0c;理解自上而下语法 分析方法的基本思想&#xff0c;掌握设计LL&#xff08;&#xff09;文法分析程序设计的基本原理和方法。 根据给定LL&#xff08;1&#xff09;分析表&#xff0c;输入…

22-31-spark-核心编程-RDD概念及理解

22-spark-核心编程-RDD概念&#xff1a; 分布式计算基础测试&#xff1a; big-data-study\Spark-demo\src\main\java\spark\core\com\zh\test02 Spark 核心编程 Spark 计算框架为了能够进行高并发和高吞吐的数据处理&#xff0c;封装了三大数据结构&#xff0c;用于处理不同的…

vscode 离线安装ssh

首先打开官方插件地址&#xff1a;https://marketplace.visualstudio.com/VSCode 然后输入ssh 下载这两个插件&#xff1a; 安装这两个插件&#xff1a; 这样便在windows下安装成功了ssh。 接下来需要在服务器端进行配置。 首先查看windows上的vscode版本&#xff1a; 这…

Arduino 崩溃或挂起的 7 种方式及如何防止

Arduino 崩溃或挂起的 7 种方式&#xff08;以及如何防止它发生&#xff09; 作者&#xff1a;Chris in Arduino 查看原文 为了帮助防止Arduino崩溃或挂起&#xff0c;我进行了一系列实验&#xff0c;以确定Arduino崩溃&#xff0c;挂起&#xff0c;重置&#xff0c;冻结&am…

5.大型电商项目之创建前端展示模板并调用

1. templates前端模板的使用 1.1 templates前端模板的创建 首先&#xff0c;我们页面很多地方是相似的&#xff0c;这里就创建一个基础模板&#xff0c;不同的地方&#xff0c;对模板内容的block进行修改即可&#xff1b;对于相同的地方&#xff0c;我们就使用include包含即可…

B. Hossam and Friends #837 div2

Problem - B - Codeforces 题意就是给你m个数对&#xff0c;这两个人不是好朋友&#xff0c;其他的所有人都是好朋友&#xff0c;问1~n里面有多少个区间里面所有数都是好朋友 分析: 这题我分析的没错&#xff0c;但是在计算区间的时候&#xff0c;想的复杂了&#xff0c;用模…

JS中,a标签里的javascript:;和 javascript:void(0)还有##

目录 1. javascript:;【常用】点击链接之后不会刷新页面&#xff0c;不会跳转链接&#xff0c;也不会传递参数 2. javascript:void(0) 【少用】点击链接后不会刷新页面&#xff0c;不会跳转链接&#xff0c;也不会传递参数 3. a标签中的# 点击链接后会刷新页面…

Spring Batch批处理-作业Job简介

引言 书接上篇Spring Batch 批处理入门案例解析&#xff0c;上篇带小伙伴们写了一个Spring Batch 入门案例解析&#xff0c;本篇就开始批处理正文啦&#xff0c;今天先对作业Job做个全面了解。 作业介绍 目前很多项目都流程的概念&#xff0c;比如web应用&#xff0c;集成应…

Java基础03_数据类型

数据类型 强类型语言 要求变量的使用要严格符合规定&#xff0c;所有的变量必须先定义后使用&#xff1b;安全性高但是速度低&#xff1b; 弱类型语言 例如&#xff1a;‘12’ 3 123 或者 ‘12’ 3 ‘123’ 在强类型语言中是有明显的区别的。而在弱类型语言中是不区分的…

算符优先分析器的构造

一、实验目的 &#xff08;1&#xff09;理解自底向上的语法分析的基本思想。 &#xff08;2&#xff09;理解算符优先文法的概念。 &#xff08;4&#xff09;掌握算符优先分析器的工作原理和工作流程。 &#xff08;3&#xff09;掌握算符分析表和优先函数的构造。 二、实验…

函数式接口

Lambda表达式的本质&#xff1a;作为函数式接口的实例 如果一个接口中&#xff0c;只声明一个抽象方法&#xff0c;则此接口就称为函数式接口 FunctionalInnterface public interface MyInterface{void method1(); }要想用Lambda表达式就一定要在函数式接口的条件下使用 相当于…

微信小程序直播状态接口如何获取

现如今&#xff0c;小程序直播非常的红火&#xff0c;越来越多的商家开通了微信小程序直播&#xff0c;但是在直播的过程中&#xff0c;偶尔会出现一些小问题&#xff0c;如禁播&#xff0c;异常状态等等&#xff0c;下面小编就来介绍一下微信小程序直播状态接口如何获取。 一、…

echarts5.4立体柱状图

资源下载&#xff1a;https://www.jsdelivr.com/package/npm/echarts 效果图&#xff1a; 借鉴资源&#xff1a;echarts 如何绘制三维 3D 立体柱状图 - 简书 代码示例&#xff1a; <!DOCTYPE html> <head><meta charset"utf-8"><title>ECh…

基于51单片机的智能小车系统设计

原理图&#xff1a; 程序运行图&#xff1a; 部分程序&#xff1a; /******************************************************************************* * 文件名称&#xff1a;main.c * 说明&#xff1a;本文件为小车控制的主函数 * 功能&…

分布式websocket探索

单体式架构 根据基于golang的gin框架开发的web项目所展开 如果一个Web项目采用单体式架构且配备了websocket通讯的功能&#xff0c;那么在单个实例中是能够正常运行的 在我的项目中&#xff0c;用户可以通过websocket来进行实时通讯和实时消息通知&#xff0c;同时如果在web业务…

AcrelEMS-IDC数据中心综合能效管理系统解决方案-Susie 周

1、概述 安科瑞电气紧跟数据中心发展形式&#xff0c;推出AcrelEMS-IDC数据中心综合能效管理解决方案&#xff0c;包含有电力监控、动环监控、消防监控、能耗统计分析、智能照明控制以及新能源监测几个子系统。集成了变配电监测、电源备自投、电气接点测温、智能照明控制、电能…

yearning搭建及使用

yearning搭建及使用 数据库审计管理&#xff0c;是数据安全规范中不可或缺的一环&#xff0c;通过审计管理我们能够把控、追溯sql执行情况。yearning作为一款开源的数据库审计软件&#xff0c;是我们开发运维工作中经常打交道的一个“伙伴”。 yearning提供的核心功能就是sql…

mysql 自增字段、属性

mysql自增属性 参考文章 https://www.php.cn/mysql-tutorials-489209.html https://blog.csdn.net/qq_41045806/article/details/108310772 在Mysql中&#xff0c;可以为某一属性设置自增属性&#xff0c;可以很好地为我们解决属性值重复的问题。 在mysql中&#xff0c;使用au…