Qt6.2.3 QWebEngineView 咋就默认无痕浏览模式了?

2023-11-20

最近项目从Qt5迁移到Qt6,有若干不兼容或者变动的地方,虽谈不上什么血泪史,但是一天内做了几十处的兼容性处理(好在项目不大),也是挺累人的。
本文重点说说QWebEngineView 咋就默认变成无痕处理模式了,如何咱们如何取消无痕模式,自定义设置缓存路径。

Profiles can be used to isolate pages from each other. A typical use case is a dedicated off-the-record profile for a private browsing mode. Using QWebEngineProfile() without defining a storage name constructs a new off-the-record profile that leaves no record on the local machine, and has no persistent data or cache. The isOffTheRecord() method can be used to check whether a profile is off-the-record.

先读懂这段话。QWebEngineProfile对象在构造的时候,如果不指定storage的名称,那么默认构造一个off-the-record 的profile对象,页面的cache和data将保存在缓存中,而不会在页面关闭时持久化到磁盘。
反过来说,只要我们对页面指定一个独一无二的profile,自然能在页面退出时将页面数据持久化。

*QWebEngineProfile::QWebEngineProfile(const QString &storageName, QObject parent = nullptr)
Constructs a new profile with the storage name storageName and parent parent.
The storage name must be unique.
A disk-based QWebEngineProfile should be destroyed on or before application exit, otherwise the cache and persistent data may not be fully flushed to disk.
See also storageName().

简单举个使用例子:

#include "widget.h"
#include <QWebEngineView>
#include <QApplication>
#include <QUrl>
#include <QDebug>
#include <QWebEngineProfile>
#include <QWebEngineSettings>
#include <QWebEnginePage>
#include <webview.h>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWebEngineView* view = new QWebEngineView;
    QWebEngineProfile profile(a.applicationName()); // here's important

    QWebEnginePage page(&profile);
    view->setPage(&page);

    QString _storageName = profile.storageName();
    QString cacheName = profile.cachePath();
    qDebug() << __FUNCTION__ << __LINE__ << _storageName << cacheName;

    QUrl url("https://www.iqiyi.com/v_1fzx7cxrde0.html?vfrm=pcw_home&vfrmblk=D&vfrmrst=712211_focus_A_image3");
    view->setUrl(url);
    view->load(url);
    view->show();
    
    return a.exec();
}

在这里插入图片描述
效果如上,无需每次都登录,可记住登录账号等信息~~

反过来,如果有朋友需要设置默认无痕模式,那么在Qt6的版本上使用,直接用默认的profile则行;Qt5上,与上使用类似

 QWebEnginePage page(); // 不指定storage名称

就这样,简单记录下

附Qt6 在webEngine的变化点:
https://doc-snapshots.qt.io/qt6-dev/qtwebengine-changes-qt6.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt6.2.3 QWebEngineView 咋就默认无痕浏览模式了? 的相关文章

  • Qt信号和信号槽(二)

    目录 信号槽使用拓展 示例1 一个信号可以对应多个槽函数 在上篇文章的代码中进行修改 示例2 用信号连接信号 信号槽的连接方式 示例 Lambda表达式 语法格式 定义和调用 信号槽使用拓展 一个信号可以连接多个槽函数 发送一个信号有多个处
  • Visual Studio 2015 + cmake编译QT5程序

    概述 由于QT的集成开发环境QTCreate 在代码调试功能上远不及Visual Studio方便 因此 在Windows平台 可以使用Visual Studio来开发调试QT程序 本文章就主要介绍下 如何使用CMAKE编译QT5程序 并使
  • Qt5 报错笔记

    使用QSound类 步骤 1 pro文件中加入 QT multimedia 2 窗体 h文件中加入QSound类的指针 QSound sound 私有对象 3 窗体 cpp文件中构造函数进行音乐播放 QString runPath QCor
  • 关于Qt和C++中的反射机制实现与运用(2)

    看到一个很好的实例 这里就转载过来了 原文地址 C 反射机制 一 前言 Java有着一个非常突出的动态相关机制 Reflection 用在Java身上指的是我们可以于运行时加载 探知 使用编译期间完全未知的classes 换句话说 Java
  • Qt里的信号与槽原理

    一 什么是信号与槽机制 信号和槽 Signal Slot 用于两个对象 object 进行交流 通俗地来说 就是一个对象发出什么信号 另一个对象执行相应的动作 比如跑步比赛中 裁判员发出枪响信号 运动员开始起跑 信号 Signal 相当于发
  • Qt-Web混合开发-QWebEngineView加载网页最小示例(1)

    Qt Web混合开发 QWebEngineView加载网页最小示例 文章目录 Qt Web混合开发 QWebEngineView加载网页最小示例 1 概述 2 实现效果 3 实现功能 4 关键代码 5 源代码 更多精彩内容 个人内容分类汇总
  • Qt中的位置和尺寸

    在QT中我们常见的 点 线 尺寸 矩形 都被进行了封装 下边依次为大家介绍相关的类 目录 QPoint QLine QSize QRect QPoint QPoint是C 编程语言中Qt框架中的一个类 它表示2D坐标系中的一个点 它用于定义
  • QT+Opencv 时报错Failed to load module “canberra-gtk-module“

    解决方案 sudo apt get install libcanberra gtk module
  • Qt中的坐标体系和内存回收

    目录 坐标体系 窗口的坐标原点 窗口的相对坐标 示例 内存回收 1 自动垃圾回收机制 2 对象树机制 示例 坐标体系 窗口的坐标原点 在Qt中 坐标系统一般是以窗口左上角为原点 向右为正方向X轴 向下为正方向Y轴 窗口的相对坐标 在一个 Q
  • 搭建使用 VS 开发 Qt 项目的环境

    搭建使用 VS 开发 Qt 项目的环境 个人认为 使用 Qt 工具开发 Qt 项目是最好的方案 在开发的过程出现的 bug 会比较少一些 但是有些同伴可能对 VS 比较钟爱 而 VS 又有此功能 因此想采用 VS 进行开发 本文将本人搭建成
  • Qt 在主界面程序中,调用子界面(另一个界面)的控件

    问题 在主界面程序mainwindow cpp中 想调用子界面 另一个界面 上的控件 已经在 pro工程中添加好了一个设计师界面类作为子界面 这里我在工程中添加的是show netlist dialog cpp h ui 解决步骤 1 在子
  • Qt5打包——利用自带的windeployqt.exe和工具Enigma Virtual Box

    目录 运行 添加依赖 发布成单一exe形式 运行 选择Release版本 运行一次 Release 运行后会发现多了Release版本 里面有exe 但是双击时会发现缺少一些动态链接库 直接点击后缺少动态链接库 添加依赖 在你的Qt的安装包
  • QT两种方法实现定时器

    方法一 1 重写虚函数 void timerEvent QTimerEvent e 2 启动定时器 返回值为定时器id 参数为定时间隔 单位为毫秒 int startTimer int interval 代码 widget h ifndef
  • Qt项目实战杂谈一二:网页/应用嵌入技术

    这一篇 应该说是满满的诚意了 很早之前就有完成此篇的打算 奈何一直没有时间 要么是沉迷于编码无法自拔 要么就是执着于释放身心的游戏而偷偷爽快不已 今天 我们说说老牌软件的一个趋势 和对应的某些技术细节的实现点 可能有点长 看这写吧 过长可能
  • QT 编译报错“QWidget: Must construct a QApplication before a QWidget”

    一 错误原因 1 在构造QApplication之前创建了部件 某个类或者其子类中采用了静态的qWidget或者其子类 由于静态或者全局对象在 main 之前就产生了 所以 早于main 里的QApplication对象 2 混用 debu
  • Qt智能指针之QScopedPointer

    内存释放的问题是C 中比较头疼的问题 合理的使用智能指针能有效的帮助我们减少忘记释放内存 导致的内存泄露问题 本文以Qt中的QScopedPointer为例 通过讲解其用法 从源码深度剖析其实现方式 QScopedPointer的使用原理比
  • Qt 信号槽相关

    简单连接和关闭 connect 操作对象 操作对象属性 操作 this 响应对象 响应函数 连接 disconnect 操作对象 操作对象属性 操作 this 响应对象 响应函数 关闭 Lambda表达式 信号 connect 对象 对象类
  • 消除 QWebChannel 属性通知器信号警告

    我在用着QWebEngineView with QWebChannel 类似于 class AppView QWebEngineView def init self QWebEngineView init self self ch QWeb
  • 无法使用 QWebEngineView 渲染网页

    我一直在尝试将网页渲染到 PyQt5 中的小部件上 这些是我的设置 PyQt 5 15 4 PyQtWebEngine 5 15 4 PyQt5 工具 5 15 4 2 我正在尝试渲染一些基本网站 例如 google com 但我面临着一个
  • 如何在QWebEngineView中指定用户代理

    我正在使用 PyQt5 在网页上实现自动化功能 PyQt5 中显示的页面与 Chrome 中显示的页面有很大不同 如果我要更改用户代理 我可以模仿 Chrome 的功能吗 如果是这样 我将如何更改以下示例中的用户代理 import sys

随机推荐

  • linux恢复模式如何输密码,在Ubuntu上使用恢复模式及Recovery Mode各选项的使用方法...

    本文介绍在Ubuntu上使用恢复模式的方法 包括Recovery Mode选项 Clean Dpkg Fsck Grub Root 的使用方法 前言 Ubuntu操作系统带有恢复模式 通过此功能 用户可以访问损坏系统的命令行 修复错误配置的
  • XSS & SQL injection

    作者 CyberPhreak XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X Web Security XSS more X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 介绍在这篇文章中我将说明所有关于X
  • CREATE INDEX 语句

    CREATE INDEX 语句用于在表中创建索引 索引 您可以在表中创建索引 以便更加快速高效地查询数据 用户无法看到索引 它们只能被用来加速搜索 查询 SQL CREATE INDEX 语法 在表上创建一个简单的索引 允许使用重复的值 C
  • Android:Log日志AS使用及Linux输出

    Android Studio中对应如下几种Log方法 1 Log v TAG 打印那些最为琐碎的 意义最小的日志信息 对应级别verbose 是Android 日志里面级别最低的一种 2 Log d TAG 打印一些调试信息 这些信息对你调
  • QT内存泄露问题

    原文链接 Qt浅谈之一 内存泄露 总结 乌托邦 CSDN博客 qt内存管理机制 关于堆栈不清楚的可以参考这篇文章 内存分配及堆与栈的区别 Keep Moving CSDN博客 在自己项目中 发现很多按键参数new之后并没有进行delete
  • vue面试题

    1 介绍一下vuex vuex是vue js应用的一个状态管理工具 state 用于保存我们应用的状态 2 v show与v if的区别和使用场景 区别 1 v show 只是简单的控制元素的 display 属性 而 v if 才是条件渲
  • 谷歌云|机密 GKE 节点可在计算优化的 C2D 虚拟机上使用

    机密 GKE 节点可用于计算优化的 C2D 虚拟机 许多公司已采用 Google Kubernetes Engine GKE 作为其应用程序基础架构中的关键组件 在某些情况下 使用容器和 Kubernetes 的优势可以超越传统架构 但迁移
  • linux中mysql启动服务命令(合集)

    linux的mysql启动服务命令 linux的mysql启动服务命令1 使用mysqld启动 关闭MySQL服务 mysqld是MySQL的守护进程 我们可以用mysqld来启动 关闭MySQL服务 关于mysqld MySQL 5 6官
  • You have not concluded your merge (MERGE_HEAD exists). Exiting because of unfinished merge.

    You have not concluded your merge MERGE HEAD exists Exiting because of unfinished merge git fetch all git reset hard ori
  • Select、Poll和Epoll

    看到一篇写得很不错的博文 有必要收藏一下 原文 https cloud tencent com developer article 1005481 提到select poll epoll相信大家都耳熟能详了 三个都是IO多路复用的机制 可以
  • 鸿蒙(二)基于小熊派实现LOT上云的智慧家居项目

    手把手教你利用鸿蒙OS实现智慧家居 LOT上云项目 一 前言 今天使用鸿蒙OS 做一个LOT上云的智慧家居项目 我们想实现的场景是这样的 云端WEB有一个控制界面 能够操控家房间里的灯和风扇 同时将房间里温度 湿度 光强实时显示出来 二 案
  • APUE学习的经验(引以为戒)

    前段时间在学习Linux 在没有感悟之前我是不敢把所得放到这里的 所以就一直没有新的文章 很惭愧啊 根据在网上搜集到的学习Linux的学习路线和自己当前对Linux的理解 我认为我可以学习APUE了 APUE 英文名应该是Advanced
  • mysql做生日日期字段的用到的类型_MySQL 日期类型函数及使用

    1 MySQL 数据库中有五种与日期时间有关的数据类型 各种日期数据类型所占空间如下图所示 2 datetime 与 date datetime 占用8字节 是占用空间最多的一种日期格式 它显示日期 同时也显示时间 5 5及以前的版本不支持
  • cmake命令之AUX_SOURCE_DIRECTORY 的案例

    AUX SOURCE DIRECTORY的命令形式如下 aux source directory
  • 16-MyCat

    一 Mycat概述 1 什么是Mycat 什么是Mycat Mycat是数据库中间件 所谓数据库中间件是连接Java应用程序和数据库中间的软件 为什么要用Mycat 遇到问题 Java与数据库的紧耦合 高访问量高并发对数据库的压力 读写请求
  • python selenium使用JS新建标签(new tab)与切换标签

    以下是通用操作 不建议用快捷键的方式新开tab 因为js是通用的 from selenium import webdriver driver webdriver Chrome 新建窗口 driver execute script windo
  • 【嵌入式开发基础】PL2303不支持win11及后续版本解决方法

    最近在使用PL2303这一块USB转串口后 在安装驱动时遇到如下问题 此PL2303驱动程序不支持WINDOWS 11及后续版本 请安装正确驱动程序 解决方法 下载旧版本的PL2303驱动然后安装替换 PL2303 Prolific Dri
  • C语言二分法查找算法

    二分查找算法 折半查找算法
  • echarts饼状图mysql_echarts饼状图位置设置

    ReactNative环境配置 参考链接 Windows系统安装React Native环境 windows下React Native Android 环境搭建 在Windows下搭建React Native Android开发环境 转载
  • Qt6.2.3 QWebEngineView 咋就默认无痕浏览模式了?

    最近项目从Qt5迁移到Qt6 有若干不兼容或者变动的地方 虽谈不上什么血泪史 但是一天内做了几十处的兼容性处理 好在项目不大 也是挺累人的 本文重点说说QWebEngineView 咋就默认变成无痕处理模式了 如何咱们如何取消无痕模式 自定