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中基于QWebEngineView的C++和JS互相调用

    QT版本5 14 2 xff0c ubuntu18 04 4 1 PRO包含库 QT 43 61 webenginewidgets 2 main中启用OpenGL QCoreApplication setAttribute Qt AA Us
  • QJsonObject 类

    1 QJsonObject简介 QJsonObject类封装了一个JSON对象 JSON对象是键值对的列表 其中键是唯一的字符串 值由QJsonValue表示 QJsonObject可以转换为QVariantMap 也可以从QVariant
  • QDialog的相关API函数

    目录 常用的一些 API 函数 QDialog 的子类 QMessageBox QFileDialog QFont 字体类 QColorDialog QInputDialog QProgressDialog 总结 QDialog是Qt框架中
  • 使用函数指针,实现一个实用的C语言框架

    在上一篇 Qt动态库加载之 QLibrary 一文中 和大家分享了Qt 编译和调用C动态库的方法 在动态库中 我们使用了函数指针 借用函数指针实现C语言中的 多态 其次 在库中我们实现固定的算法和业务 将可能会更改的部分以接口的形式抛出 用
  • QT实现发送get和post请求

    介绍下如何在qt程序中给http服务端发送get和post请求 首先你要有一个http服务端 下面直接贴下代码 pro QT core gui network greaterThan QT MAJOR VERSION 4 QT widget
  • QT+Opencv 时报错Failed to load module “canberra-gtk-module“

    解决方案 sudo apt get install libcanberra gtk module
  • QMessageBox 设置中文按钮(返回值判断)

    QMessageBox 设置中文按钮 返回值判断 一 解决乱码 pragma execution character set UTF 8 二 按钮修改为中文 方法一 创建一个question弹出对话框 添加两个按钮 Yes和No QMess
  • Qt中的坐标体系和内存回收

    目录 坐标体系 窗口的坐标原点 窗口的相对坐标 示例 内存回收 1 自动垃圾回收机制 2 对象树机制 示例 坐标体系 窗口的坐标原点 在Qt中 坐标系统一般是以窗口左上角为原点 向右为正方向X轴 向下为正方向Y轴 窗口的相对坐标 在一个 Q
  • 宏定义 类模板 及类模板的全特化

    如下所示 定义一个宏函数 只要传入类型名 即可生成一个类模板 include
  • Qt : d指针和q指针?

    目录 一 什么是d指针和q指针 1 d指针 2 q 指针 二 d指针和q指针的作用 三 d指针和q指针的使用 demo 一 什么是d指针和q指针 在Qt的源码中 我们看到大量的Q D 和Q P 宏的调用 查看代码时在一定程度上增加了复杂度
  • Q_UNUSED ( name ) 的用法

    一 用法 Q UNUSED 没有实质性的作用 用来避免编译器警告 for example int transition getSTL int type Q UNUSED type return 123 二 相关问题处理 如果编译中出现以下警
  • Qt智能指针之QScopedPointer

    内存释放的问题是C 中比较头疼的问题 合理的使用智能指针能有效的帮助我们减少忘记释放内存 导致的内存泄露问题 本文以Qt中的QScopedPointer为例 通过讲解其用法 从源码深度剖析其实现方式 QScopedPointer的使用原理比
  • 你的Qt按钮可以加载Gif圆形的头像吗?

    先上效果 先看要求 我们首先要求 1 这是一个按钮 所以可以想到重写控件的基类一定是QPushButton 2 我们要求可以播放Gif图片 由此可想到 图片的加载肯定绕不开QMoive 3 头像是圆形的 猜想是不是可以通过样式表 或者重新p
  • Qt中的C++技术 学习总结:(3)类型分类(Type Classification)技术

    设一个模板具有模板参数T 表示C 中的某种类型 有些情况下 随着T所取类型的不同 该模板会做不同的处理 在设计该模板时 我们需要了解T的具体信息 在编写一个具有模板参数T的类模板时 有时需要了解T所取类型的具体信息 以做不同的处理 这是一个
  • 如何在 pyinstaller 中添加静态(html、css、js 等)文件以创建独立的 exe 文件?

    我在用着QtWebEngineWidgets QtWebChannel创建 PyQt5 应用程序 它使用 HTML CSS JavaScript 当我们以一般方式运行时 即运行正常 python main py 导入 HTML 如下 cur
  • QWebEnginePage.print 与 QPrintPreviewDialog 导致空预览

    我有一个曾经使用过的程序QWebKit在对话框中显示和打印自定义生成的 HTML 报告 现在 我想将整个内容转换为QWebEngine 到目前为止一切正常 只有打印不行 到目前为止我用过QWebView print 将整个 HTML 数据交
  • QTableWidget中嵌套下拉显示框(QComboBox实现)

    在已经有 QTableWidget 的情况下 创建一个CustomComboBox对象 wheer speed comboBox new QComboBox 向CustomComboBox添加选项 for int i 0 i
  • QWebEngineView 中的 Qt 事件传播

    我有一个名为generate input event 我正在尝试使用此函数来模拟 QWebEngineView 中的按键 def generate input event window id key code modifiers low l
  • 无法使用 QWebEngineView 渲染网页

    我一直在尝试将网页渲染到 PyQt5 中的小部件上 这些是我的设置 PyQt 5 15 4 PyQtWebEngine 5 15 4 PyQt5 工具 5 15 4 2 我正在尝试渲染一些基本网站 例如 google com 但我面临着一个
  • 如何在QWebEngineView中保存动态生成的网页?

    我正在将网页加载到QWebEngineView 用户创建不同类型的表格 报告 然后需要将这些表格作为网页保存到本地计算机 这是我尝试过的 这里我使用一个QWebEnginePage save 方法 但没有任何反应 connect saveB

随机推荐

  • 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 咋就默认变成无痕处理模式了 如何咱们如何取消无痕模式 自定