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.关闭软件警告: Release of profile requested but WebEnginePage still not deleted. Expect troubles! 原因,系统退出关闭view,没有释放page。 解决办法:手动释放page 顺便把view也释放了。 Widget::~Widget() {updateIni…...
【2023.10.30练习】C语言-判断等式成立
计算机能力挑战初赛2020.20题 题目描述: 输入正整数A、B、C(0<A,B,C<10000),若用、-、*、/、%之一组成等式(即ABC,是上述运算符之一,),则输出“YES”,否则输出“NO”; 输入: 第一行输入…...
Wpf 使用 Prism 实战开发Day03
一.实现左侧菜单绑定 效果图: 1.首先需要在项目中创建 mvvm 的架构模式 创建 Models ,放置实体类。 实体类需要继承自Prism 框架的 BindableBase,目的是让实体类支持数据的动态变更! 例如: 系统导航菜单实体类 / <summary>/// 系统导航菜单实体类…...
JavaEE-cookie和session
本部分内容包括 cookie基本概念,sendcookies和getcookies代码; session基本概念,session实现登陆界面; 上述过程中涉及的代码如下: 1 import javax.servlet.ServletException; import javax.servlet.annotation.WebSe…...
Java设计模式之命令模式
目录 定义 结构 案例 优点 缺点 使用场景 JDK源码解析 Thread中start与run方法的区别 定义 将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行存储、传递、调用、增…...
记录一段帮朋友写的代码,使用牛顿-拉夫逊方法解方程
要求 已知公式: 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 tFGABr2FBr2FA2BGAln(r−A)Const 其中 t 的值为0-1000,每间隔25取一次值A2.12941E-10B0.…...
滑动窗口限流算法实现一
固定算法 原理:固定算法是将时间线分隔成固定大小的时间窗口,每个窗口都会有个计数器,用来记录窗口时间范围内的请求总数,如果窗口的请求总数达到最大限定值,会认定流量超限。比如将窗口大小设为1分钟,每分…...
简单明了!网关Gateway路由配置filters实现路径重写及对应正则表达式的解析
问题背景: 前端需要发送一个这样的请求,但出现404 首先解析请求的变化: http://www.51xuecheng.cn/api/checkcode/pic 1.请求先打在nginx,www.51xuecheng.cn/api/checkcode/pic部分匹配到了之后会转发给网关进行处理变成localho…...
EMQX内置Web管理控制台-Dashboard
一、Dashboard概述 EMQX Dashboard官网文档:https://docs.emqx.com/zh/enterprise/v5.1/dashboard/introduction.html 1、简介 EMQX 为用户提供了一个功能强大的内置管理控制台,即 EMQX Dashboard。通过这个控制台的 Web 界面,用户可以轻松监…...
计算机网络重点概念整理-第四章 网络层【期末复习|考研复习】
计算机网络复习系列文章传送门: 第一章 计算机网络概述 第二章 物理层 第三章 数据链路层 第四章 网络层 第五章 传输层 第六章 应用层 第七章 网络安全 计算机网络整理-简称&缩写 文章目录 前言四、网络层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动态插入样式
在开发组件过程中,偶尔需要动态的插入css,比如在在iframe中渲染组件后,iframe中是没有样式的,所以需要手动插入样式。 插入样式 通常是在useLayoutEffect中动态创建style标签 useLayoutEffect(() > {if (!ref.current) {cons…...
OkHttp网络框架深入理解-SSL握手与加密
OkHttp简介 由Square公司贡献的一个处理网络请求的开源项目,是目前Android使用最广泛的网络框架。从Android4.4开始HttpURLConnection的底层实现采用的是OkHttp。 特点: 支持HTTP/2并允许对同一主机的所有请求共享一个套接字通过连接池,减少了请求延迟…...
Mac 安装使用NPM及常用命令
环境: Mac 工具: NPM 可通过官网查询一些模块相关 NPM Doc 通过官网文档了解更多的关于NPM的使用 安装 NPM是Node.js的包管理工具,可用于解决 Node.js在代码部署上的问题。 新版本的Node.js已经集成了NPM, 因此可通过下载 Nod…...
利用 JSqlParser 防止 SQL 注入
高手文章《jsqlparser:实现基于SQL语法分析的SQL注入攻击检查》介绍了利用 JSqlParser 防止 SQL 注入,写得很好,只不过有两个问题,代码比较复杂,我于是作了简化,只有两个类;其次检测比较严格,连…...
10.27~10.29数电第三次实验分析与问题
实验要求 分析 寄存器 D触发器有两个输出口,一个输入口,一个时钟信号,一个复位信号 同步异步就是说复位信号在不在always里 给它加一个load就成了一位寄存器, 寄存器堆 8个8位的寄存器堆,每个寄存器都有两读一写…...
【软考】14.3 设计模式
《设计模式》 有下划线:类模式 / 对象模式无下划线:对象模式 创建型 设计模式 创建对象 构建器(Builder):类和构造分离抽象工厂(Abstract Factory):抽象接口工厂(Factor…...
Mac docker+vscode
mac 使用docker vs code 通过vscode 可以使用docker容器的环境。 可以在容器安装gdb, 直接调试代码。 创建容易时候可以指定目录和容易目录可以共享文件。...
LLVM学习笔记(58)
4.4. 目标机器对象 在main()函数的350行,TimeCompilations默认为1,可以通过隐藏的选项“-time-compilations”来指定它的值,它的作用是重复进行指定次数的编译,以得到更好的编译用时数据。而在这个循环中调用的compileModule()&a…...
C语言 每日一题 PTA 10.30 day8
1.高空坠球 皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少? 输入格式 : …...
基于Qt与STM32的跨平台遥控小车调试助手设计与实现
1. 项目背景与需求分析 遥控小车作为嵌入式开发的经典项目,调试环节往往是最耗时的部分。传统调试方式需要反复修改下位机代码、烧录固件、观察串口打印数据,整个过程效率低下。我在实际项目中就遇到过这样的困扰:每次调整PID参数都要重新编译…...
不止于导航:用AI Habitat的语义分割数据,教你构建自己的室内物体识别与场景理解Pipeline
不止于导航:用AI Habitat的语义分割数据构建室内物体识别与场景理解Pipeline 在计算机视觉与机器人领域,室内场景理解一直是极具挑战性的研究方向。传统方法依赖于昂贵的传感器设备和人工标注数据,而仿真平台的出现为这一领域带来了革命性变…...
阿里:时序课程解决多轮蒸馏不稳定
📖标题:TCOD: Exploring Temporal Curriculum in On-Policy Distillation for Multi-turn Autonomous Agents 🌐来源:arXiv, 2604.24005v3 🛎️文章简介 🔸研究问题:如何在多轮自主智能体场景中…...
MCP协议专用Linter:mcp-lint工具的设计、规则与集成实践
1. 项目概述:一个为MCP协议量身定制的代码质量守护者 最近在折腾MCP(Model Context Protocol)相关的开发,发现一个挺有意思的项目: robert19001-cmyk/mcp-lint 。光看名字,你大概能猜到它是个代码检查工具…...
VisualCppRedist AIO:告别DLL错误,Windows系统必备的一体化运行库解决方案
VisualCppRedist AIO:告别DLL错误,Windows系统必备的一体化运行库解决方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经在打…...
ncmdump工具完全攻略:解锁网易云音乐NCM格式转换的终极指南
ncmdump工具完全攻略:解锁网易云音乐NCM格式转换的终极指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM加密格式无法在其他播放器播放而烦恼吗?你是否经历过精心收藏的音乐只能…...
3步解锁联想刃7000k BIOS隐藏功能:安全提升硬件性能的完整指南
3步解锁联想刃7000k BIOS隐藏功能:安全提升硬件性能的完整指南 【免费下载链接】Lenovo-7000k-Unlock-BIOS Lenovo联想刃7000k2021-3060版解锁BIOS隐藏选项并提升为Admin权限 项目地址: https://gitcode.com/gh_mirrors/le/Lenovo-7000k-Unlock-BIOS 联想刃7…...
AI大模型选型生死线(2026企业级部署避坑指南)
更多请点击: https://intelliparadigm.com 第一章:AI大模型选型生死线(2026企业级部署避坑指南) 企业在2026年落地AI大模型时,选型失误的代价已远超算力采购成本——模型架构错配、上下文长度硬伤、商用许可证模糊、推…...
ARM架构VDISR_EL3寄存器解析与虚拟中断处理
1. ARM架构中的VDISR_EL3寄存器深度解析在ARMv8/v9架构的异常处理子系统中,VDISR_EL3(Virtual Deferred Interrupt Status Register)是一个关键的系统寄存器,它属于ARM可靠性、可用性和可维护性(RAS)扩展的…...
边缘计算实战:基于 Linux Netns 与标准海事网关抵御局域网横向攻击的物理隔离架构
摘要:扁平化局域网极易遭受 ARP 欺骗与黑客横向攻击。本文记录了在标准工业级海事网关上基于 Linux netns 构建网络物理与逻辑隔离防线的实操复盘。 导语:在实操一个远洋船载网络的安全重构项目时,我们面临一个极其严峻的威胁模型࿱…...
