当前位置: 首页 > news >正文

Qt使用QWebEngineView一些记录

1.关闭软件警告:

Release of profile requested but WebEnginePage still not deleted. Expect troubles!

原因,系统退出关闭view,没有释放page。

解决办法:手动释放page  顺便把view也释放了。

Widget::~Widget()
{updateIniDate();Sleep(100);for(int i=0;i<webDateList.size();i++){webDate date=webDateList.at(i);SWebEngineView *view=date.view;QWebEnginePage *page=view->page();delete page;page=NULL;delete view;view=NULL;}delete ui;
}

2.获取QWebEngineView点击超链接

重写QWebEngineView中的createWindow函数

protected:QWebEngineView *createWindow(QWebEnginePage::WebWindowType type);QWebEngineView *SWebEngineView::createWindow(QWebEnginePage::WebWindowType type)
{Q_UNUSED(type);emit httpDateUrl(this->url().toString());return this;// 自身打开超链接
}

3.获取QWebEngineView当前链接

QWebEngineView自带void urlChanged(const QUrl&)信号槽,直接使用即可

    SWebEngineView * v1=new SWebEngineView(w1);connect(v1,SIGNAL(urlChanged(QUrl)),this,SLOT(httpUr(QUrl)));

4.忽略证书错误

重写QWebEnginePage中的certificateError函数

但Qt5和Qt6不一样

目前找到都是Qt5的,有大佬知道Qt6的办法,欢迎评论区指点

protected:virtual bool certificateError(const QWebEngineCertificateError &/*error*/);bool WebEnginePage::certificateError(const QWebEngineCertificateError &certificateError)//忽略证书错误
{return true;
}WebEngineView * v1=new WebEngineView(this);WebEnginePage *page=new WebEnginePage();v1->setPage(page);

5.为了实现QWebEngineView类似 视频播放 全屏和退出全屏功能

新建一个showWidget,将QWebEngineView嵌入showWidget中,鼠标进入shwoWidget,出现放大缩小栏。点击进行对应事件触发。

showWidget::showWidget(QWidget *parent) :QWidget(parent),ui(new Ui::showWidget)
{ui->setupUi(this);this->installEventFilter(this);//捕获子窗口鼠标事件
}void showWidget::timerEvents()//鼠标长时间在widget内隐藏状态栏
{index++;if(index>=8){ui->widget->hide();index=0;if(timer->isActive()){timer->stop(); }}
}bool showWidget::eventFilter(QObject *object, QEvent *e)
{//鼠标进入状态栏显示   鼠标离开widget 状态栏隐藏//qDebug()<<e->type()<<object->objectName();if (e->type() == QEvent::Leave ){//qDebug()<<"鼠标离开"<<object->objectName();ui->widget->hide();index=0;if(timer->isActive()){timer->stop();}return QObject::eventFilter(object, e);;   // no di}if (e->type() == QEvent::Enter ){//qDebug()<<"鼠标进入"<<object->objectName();int w=this->width();if(w<1920){ui->widget->setGeometry(0,this->height()-60,w,60);ui->widget->show();index=0;if(!timer->isActive()){timer->start(500);}}return QObject::eventFilter(object, e);;   // no di}return QObject::eventFilter(object, e);
}

6.播放视频

Qt自带的dll因为版权等原因,不支持MP4、MP3,需要自己进行编译,编译比较麻烦,编译好之后,直接把dll拷贝exe所在目录即可。

后文库链接:使用环境 qt 5.15.2+vs2019  32位和64位  需要的自行下载

相关文章:

Qt使用QWebEngineView一些记录

1.关闭软件警告&#xff1a; Release of profile requested but WebEnginePage still not deleted. Expect troubles! 原因&#xff0c;系统退出关闭view&#xff0c;没有释放page。 解决办法&#xff1a;手动释放page 顺便把view也释放了。 Widget::~Widget() {updateIni…...

【2023.10.30练习】C语言-判断等式成立

计算机能力挑战初赛2020.20题 题目描述&#xff1a; 输入正整数A、B、C(0<A,B,C<10000),若用、-、*、/、%之一组成等式(即ABC&#xff0c;是上述运算符之一&#xff0c;)&#xff0c;则输出“YES”&#xff0c;否则输出“NO”&#xff1b; 输入&#xff1a; 第一行输入…...

Wpf 使用 Prism 实战开发Day03

一.实现左侧菜单绑定 效果图: 1.首先需要在项目中创建 mvvm 的架构模式 创建 Models &#xff0c;放置实体类。 实体类需要继承自Prism 框架的 BindableBase&#xff0c;目的是让实体类支持数据的动态变更! 例如: 系统导航菜单实体类 / <summary>/// 系统导航菜单实体类…...

JavaEE-cookie和session

本部分内容包括 cookie基本概念&#xff0c;sendcookies和getcookies代码&#xff1b; session基本概念&#xff0c;session实现登陆界面&#xff1b; 上述过程中涉及的代码如下&#xff1a; 1 import javax.servlet.ServletException; import javax.servlet.annotation.WebSe…...

Java设计模式之命令模式

目录 定义 结构 案例 优点 缺点 使用场景 JDK源码解析 Thread中start与run方法的区别 定义 将一个请求封装为一个对象&#xff0c;使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通&#xff0c;这样方便将命令对象进行存储、传递、调用、增…...

记录一段帮朋友写的代码,使用牛顿-拉夫逊方法解方程

要求 已知公式&#xff1a; t G A B F r B r 2 2 F A 2 B G A F ln ⁡ ( r − A ) C o n s t t\frac{GAB}{F}r\frac{Br^2}{2F}\frac{A^2BGA}{F}\ln (r-A)Const tFGAB​r2FBr2​FA2BGA​ln(r−A)Const 其中 t 的值为0-1000&#xff0c;每间隔25取一次值A2.12941E-10B0.…...

滑动窗口限流算法实现一

固定算法 原理&#xff1a;固定算法是将时间线分隔成固定大小的时间窗口&#xff0c;每个窗口都会有个计数器&#xff0c;用来记录窗口时间范围内的请求总数&#xff0c;如果窗口的请求总数达到最大限定值&#xff0c;会认定流量超限。比如将窗口大小设为1分钟&#xff0c;每分…...

简单明了!网关Gateway路由配置filters实现路径重写及对应正则表达式的解析

问题背景&#xff1a; 前端需要发送一个这样的请求&#xff0c;但出现404 首先解析请求的变化&#xff1a; http://www.51xuecheng.cn/api/checkcode/pic 1.请求先打在nginx&#xff0c;www.51xuecheng.cn/api/checkcode/pic部分匹配到了之后会转发给网关进行处理变成localho…...

EMQX内置Web管理控制台-Dashboard

一、Dashboard概述 EMQX Dashboard官网文档&#xff1a;https://docs.emqx.com/zh/enterprise/v5.1/dashboard/introduction.html 1、简介 EMQX 为用户提供了一个功能强大的内置管理控制台&#xff0c;即 EMQX Dashboard。通过这个控制台的 Web 界面&#xff0c;用户可以轻松监…...

计算机网络重点概念整理-第四章 网络层【期末复习|考研复习】

计算机网络复习系列文章传送门&#xff1a; 第一章 计算机网络概述 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层 第七章 网络安全 计算机网络整理-简称&缩写 文章目录 前言四、网络层4.1 网络层功能4.1.1 电路交换、报文交换与分组交换4.1…...

数组转树形数据

const nodes [{ id: 3, name: 节点C, pid: 1 },{ id: 6, name: 节点F, pid: 3 },{ id: 0, name: root, pid: null },{ id: 1, name: 节点A, pid: 0 },{ id: 8, name: 节点H, pid: 4 },{ id: 4, name: 节点D, pid: 1 },{ id: 2, name: 节点B, pid: 0 },{ id: 5, name: 节点E, p…...

react动态插入样式

在开发组件过程中&#xff0c;偶尔需要动态的插入css&#xff0c;比如在在iframe中渲染组件后&#xff0c;iframe中是没有样式的&#xff0c;所以需要手动插入样式。 插入样式 通常是在useLayoutEffect中动态创建style标签 useLayoutEffect(() > {if (!ref.current) {cons…...

OkHttp网络框架深入理解-SSL握手与加密

OkHttp简介 由Square公司贡献的一个处理网络请求的开源项目&#xff0c;是目前Android使用最广泛的网络框架。从Android4.4开始HttpURLConnection的底层实现采用的是OkHttp。 特点&#xff1a; 支持HTTP/2并允许对同一主机的所有请求共享一个套接字通过连接池,减少了请求延迟…...

Mac 安装使用NPM及常用命令

环境&#xff1a; Mac 工具&#xff1a; NPM 可通过官网查询一些模块相关 NPM Doc 通过官网文档了解更多的关于NPM的使用 安装 NPM是Node.js的包管理工具&#xff0c;可用于解决 Node.js在代码部署上的问题。 新版本的Node.js已经集成了NPM&#xff0c; 因此可通过下载 Nod…...

利用 JSqlParser 防止 SQL 注入

高手文章《jsqlparser:实现基于SQL语法分析的SQL注入攻击检查》介绍了利用 JSqlParser 防止 SQL 注入&#xff0c;写得很好&#xff0c;只不过有两个问题&#xff0c;代码比较复杂&#xff0c;我于是作了简化&#xff0c;只有两个类&#xff1b;其次检测比较严格&#xff0c;连…...

10.27~10.29数电第三次实验分析与问题

实验要求 分析 寄存器 D触发器有两个输出口&#xff0c;一个输入口&#xff0c;一个时钟信号&#xff0c;一个复位信号 同步异步就是说复位信号在不在always里 给它加一个load就成了一位寄存器&#xff0c; 寄存器堆 8个8位的寄存器堆&#xff0c;每个寄存器都有两读一写…...

【软考】14.3 设计模式

《设计模式》 有下划线&#xff1a;类模式 / 对象模式无下划线&#xff1a;对象模式 创建型 设计模式 创建对象 构建器&#xff08;Builder&#xff09;&#xff1a;类和构造分离抽象工厂&#xff08;Abstract Factory&#xff09;&#xff1a;抽象接口工厂&#xff08;Factor…...

Mac docker+vscode

mac 使用docker vs code 通过vscode 可以使用docker容器的环境。 可以在容器安装gdb, 直接调试代码。 创建容易时候可以指定目录和容易目录可以共享文件。...

LLVM学习笔记(58)

4.4. 目标机器对象 在main()函数的350行&#xff0c;TimeCompilations默认为1&#xff0c;可以通过隐藏的选项“-time-compilations”来指定它的值&#xff0c;它的作用是重复进行指定次数的编译&#xff0c;以得到更好的编译用时数据。而在这个循环中调用的compileModule()&a…...

C语言 每日一题 PTA 10.30 day8

1.高空坠球 皮球从某给定高度自由落下&#xff0c;触地后反弹到原高度的一半&#xff0c;再落下&#xff0c;再反弹&#xff0c;……&#xff0c;如此反复。问皮球在第n次落地时&#xff0c;在空中一共经过多少距离&#xff1f;第n次反弹的高度是多少&#xff1f; 输入格式 : …...

基于Qt与STM32的跨平台遥控小车调试助手设计与实现

1. 项目背景与需求分析 遥控小车作为嵌入式开发的经典项目&#xff0c;调试环节往往是最耗时的部分。传统调试方式需要反复修改下位机代码、烧录固件、观察串口打印数据&#xff0c;整个过程效率低下。我在实际项目中就遇到过这样的困扰&#xff1a;每次调整PID参数都要重新编译…...

不止于导航:用AI Habitat的语义分割数据,教你构建自己的室内物体识别与场景理解Pipeline

不止于导航&#xff1a;用AI Habitat的语义分割数据构建室内物体识别与场景理解Pipeline 在计算机视觉与机器人领域&#xff0c;室内场景理解一直是极具挑战性的研究方向。传统方法依赖于昂贵的传感器设备和人工标注数据&#xff0c;而仿真平台的出现为这一领域带来了革命性变…...

阿里:时序课程解决多轮蒸馏不稳定

&#x1f4d6;标题&#xff1a;TCOD: Exploring Temporal Curriculum in On-Policy Distillation for Multi-turn Autonomous Agents &#x1f310;来源&#xff1a;arXiv, 2604.24005v3 &#x1f6ce;️文章简介 &#x1f538;研究问题&#xff1a;如何在多轮自主智能体场景中…...

MCP协议专用Linter:mcp-lint工具的设计、规则与集成实践

1. 项目概述&#xff1a;一个为MCP协议量身定制的代码质量守护者 最近在折腾MCP&#xff08;Model Context Protocol&#xff09;相关的开发&#xff0c;发现一个挺有意思的项目&#xff1a; robert19001-cmyk/mcp-lint 。光看名字&#xff0c;你大概能猜到它是个代码检查工具…...

VisualCppRedist AIO:告别DLL错误,Windows系统必备的一体化运行库解决方案

VisualCppRedist AIO&#xff1a;告别DLL错误&#xff0c;Windows系统必备的一体化运行库解决方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经在打…...

ncmdump工具完全攻略:解锁网易云音乐NCM格式转换的终极指南

ncmdump工具完全攻略&#xff1a;解锁网易云音乐NCM格式转换的终极指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM加密格式无法在其他播放器播放而烦恼吗&#xff1f;你是否经历过精心收藏的音乐只能…...

3步解锁联想刃7000k BIOS隐藏功能:安全提升硬件性能的完整指南

3步解锁联想刃7000k BIOS隐藏功能&#xff1a;安全提升硬件性能的完整指南 【免费下载链接】Lenovo-7000k-Unlock-BIOS Lenovo联想刃7000k2021-3060版解锁BIOS隐藏选项并提升为Admin权限 项目地址: https://gitcode.com/gh_mirrors/le/Lenovo-7000k-Unlock-BIOS 联想刃7…...

AI大模型选型生死线(2026企业级部署避坑指南)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI大模型选型生死线&#xff08;2026企业级部署避坑指南&#xff09; 企业在2026年落地AI大模型时&#xff0c;选型失误的代价已远超算力采购成本——模型架构错配、上下文长度硬伤、商用许可证模糊、推…...

ARM架构VDISR_EL3寄存器解析与虚拟中断处理

1. ARM架构中的VDISR_EL3寄存器深度解析在ARMv8/v9架构的异常处理子系统中&#xff0c;VDISR_EL3&#xff08;Virtual Deferred Interrupt Status Register&#xff09;是一个关键的系统寄存器&#xff0c;它属于ARM可靠性、可用性和可维护性&#xff08;RAS&#xff09;扩展的…...

边缘计算实战:基于 Linux Netns 与标准海事网关抵御局域网横向攻击的物理隔离架构

摘要&#xff1a;扁平化局域网极易遭受 ARP 欺骗与黑客横向攻击。本文记录了在标准工业级海事网关上基于 Linux netns 构建网络物理与逻辑隔离防线的实操复盘。 导语&#xff1a;在实操一个远洋船载网络的安全重构项目时&#xff0c;我们面临一个极其严峻的威胁模型&#xff1…...