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

Qt+C++自建网页浏览器-Chrome blink最新内核基础上搭建-改进版本

 程序示例精选

Qt+C++自建网页浏览器-Chrome blink最新内核基础上搭建-改进版本

如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!

前言

这篇博客针对<<Qt+C++自建网页浏览器-Chrome blink最新内核基础上搭建-改进版本>>编写代码,代码整洁,规则,易读。 学习与应用推荐首选。


文章目录

一、所需工具软件

二、使用步骤

1. 引入库

2. 窗体界面

3. 运行结果

三、在线协助

一、所需工具软件

1. VS, Qt

2. Win10, Win11

二、使用步骤

1.引入库

代码如下(示例):


#include "QUrl"
#include <iostream>
#include<string>
#include<QKeyEvent>
#include<QFontDatabase>
#include<QWebEngineSettings>
#include<QWebEngineCookieStore>

2.窗体界面

代码如下(示例):


QT_BEGIN_NAMESPACEclass Ui_MainWindowClass
{
public:QAction *actionaa;QWidget *centralWidget;QGridLayout *gridLayout_3;QFrame *frame_2;QGridLayout *gridLayout_2;QComboBox *comboBox;QHBoxLayout *horizontalLayout;QPushButton *pushButton_4;QPushButton *pushButton_3;QPushButton *pushButton_2;QLineEdit *lineEdit;QPushButton *pushButton;QPushButton *pushButton_5;QPushButton *pushButton_6;QSpacerItem *horizontalSpacer;QSpacerItem *horizontalSpacer_2;QLabel *label;QFrame *frame;QGridLayout *gridLayout;QWebEngineView *webEngineView;QMenuBar *menuBar;QToolBar *mainToolBar;QStatusBar *statusBar;void setupUi(QMainWindow *MainWindowClass){if (MainWindowClass->objectName().isEmpty())MainWindowClass->setObjectName(QString::fromUtf8("MainWindowClass"));MainWindowClass->resize(716, 400);actionaa = new QAction(MainWindowClass);actionaa->setObjectName(QString::fromUtf8("actionaa"));QIcon icon;QString iconThemeName = QString::fromUtf8("dfds");if (QIcon::hasThemeIcon(iconThemeName)) {icon = QIcon::fromTheme(iconThemeName);} else {icon.addFile(QString::fromUtf8(":/MainWindow/png/\346\211\223\345\274\200\346\226\207\344\273\266\345\244\271-\347\272\242\350\211\262.png"), QSize(), QIcon::Normal, QIcon::Off);}actionaa->setIcon(icon);centralWidget = new QWidget(MainWindowClass);centralWidget->setObjectName(QString::fromUtf8("centralWidget"));gridLayout_3 = new QGridLayout(centralWidget);gridLayout_3->setSpacing(6);gridLayout_3->setContentsMargins(11, 11, 11, 11);gridLayout_3->setObjectName(QString::fromUtf8("gridLayout_3"));frame_2 = new QFrame(centralWidget);frame_2->setObjectName(QString::fromUtf8("frame_2"));QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);sizePolicy.setHorizontalStretch(1);sizePolicy.setVerticalStretch(0);sizePolicy.setHeightForWidth(frame_2->sizePolicy().hasHeightForWidth());frame_2->setSizePolicy(sizePolicy);QFont font;font.setFamily(QString::fromUtf8("3ds"));font.setPointSize(16);frame_2->setFont(font);frame_2->setFrameShape(QFrame::Box);frame_2->setFrameShadow(QFrame::Raised);gridLayout_2 = new QGridLayout(frame_2);gridLayout_2->setSpacing(6);gridLayout_2->setContentsMargins(11, 11, 11, 11);gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));comboBox = new QComboBox(frame_2);comboBox->addItem(QString());comboBox->addItem(QString());comboBox->addItem(QString());comboBox->setObjectName(QString::fromUtf8("comboBox"));QFont font1;font1.setFamily(QString::fromUtf8("\345\276\256\350\275\257\351\233\205\351\273\221"));font1.setPointSize(12);comboBox->setFont(font1);gridLayout_2->addWidget(comboBox, 0, 2, 1, 1);horizontalLayout = new QHBoxLayout();horizontalLayout->setSpacing(6);horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));pushButton_4 = new QPushButton(frame_2);pushButton_4->setObjectName(QString::fromUtf8("pushButton_4"));horizontalLayout->addWidget(pushButton_4);pushButton_3 = new QPushButton(frame_2);pushButton_3->setObjectName(QString::fromUtf8("pushButton_3"));horizontalLayout->addWidget(pushButton_3);pushButton_2 = new QPushButton(frame_2);pushButton_2->setObjectName(QString::fromUtf8("pushButton_2"));horizontalLayout->addWidget(pushButton_2);lineEdit = new QLineEdit(frame_2);lineEdit->setObjectName(QString::fromUtf8("lineEdit"));QFont font2;font2.setFamily(QString::fromUtf8("\345\276\256\350\275\257\351\233\205\351\273\221"));lineEdit->setFont(font2);horizontalLayout->addWidget(lineEdit);pushButton = new QPushButton(frame_2);pushButton->setObjectName(QString::fromUtf8("pushButton"));QFont font3;font3.setFamily(QString::fromUtf8("\345\276\256\350\275\257\351\233\205\351\273\221"));font3.setPointSize(16);pushButton->setFont(font3);horizontalLayout->addWidget(pushButton);pushButton_5 = new QPushButton(frame_2);pushButton_5->setObjectName(QString::fromUtf8("pushButton_5"));pushButton_5->setFont(font2);horizontalLayout->addWidget(pushButton_5);pushButton_6 = new QPushButton(frame_2);pushButton_6->setObjectName(QString::fromUtf8("pushButton_6"));pushButton_6->setFont(font2);horizontalLayout->addWidget(pushButton_6);horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);horizontalLayout->addItem(horizontalSpacer);gridLayout_2->addLayout(horizontalLayout, 0, 0, 1, 1);horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);gridLayout_2->addItem(horizontalSpacer_2, 0, 1, 1, 1);label = new QLabel(frame_2);label->setObjectName(QString::fromUtf8("label"));label->setFont(font2);gridLayout_2->addWidget(label, 0, 3, 1, 1);gridLayout_3->addWidget(frame_2, 0, 0, 1, 1);frame = new QFrame(centralWidget);frame->setObjectName(QString::fromUtf8("frame"));QSizePolicy sizePolicy1(QSizePolicy::Preferred, QSizePolicy::Preferred);sizePolicy1.setHorizontalStretch(0);sizePolicy1.setVerticalStretch(6);sizePolicy1.setHeightForWidth(frame->sizePolicy().hasHeightForWidth());frame->setSizePolicy(sizePolicy1);frame->setFrameShape(QFrame::Box);frame->setFrameShadow(QFrame::Raised);gridLayout = new QGridLayout(frame);gridLayout->setSpacing(5);gridLayout->setContentsMargins(11, 11, 11, 11);gridLayout->setObjectName(QString::fromUtf8("gridLayout"));gridLayout->setContentsMargins(0, 0, 0, 0);webEngineView = new QWebEngineView(frame);webEngineView->setObjectName(QString::fromUtf8("webEngineView"));webEngineView->setUrl(QUrl(QString::fromUtf8("about:blank")));gridLayout->addWidget(webEngineView, 0, 0, 1, 1);gridLayout_3->addWidget(frame, 1, 0, 1, 1);mainToolBar->addAction(actionaa);mainToolBar->addSeparator();retranslateUi(MainWindowClass);QMetaObject::connectSlotsByName(MainWindowClass);} // setupUivoid retranslateUi(QMainWindow *MainWindowClass){MainWindowClass->setWindowTitle(QCoreApplication::translate("MainWindowClass", "MainWindow", nullptr));actionaa->setText(QCoreApplication::translate("MainWindowClass", "aa", nullptr));
#if QT_CONFIG(shortcut)actionaa->setShortcut(QCoreApplication::translate("MainWindowClass", "Ctrl+O", nullptr));
#endif // QT_CONFIG(shortcut)comboBox->setItemText(0, QString());comboBox->setItemText(1, QCoreApplication::translate("MainWindowClass", "www.baidu.com", nullptr));comboBox->setItemText(2, QCoreApplication::translate("MainWindowClass", "www.csdn.net", nullptr));};namespace Ui {class MainWindowClass: public Ui_MainWindowClass {};
} // namespace UiQT_END_NAMESPACE#endif // UI_MAINWINDOW_H

3.运行结果如下

三、在线协助:

如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!
1)远程安装运行环境,代码调试
2)Qt, C++, Python入门指导
3)界面美化
4)软件制作

 当前文章连接:https://blog.csdn.net/alicema1111/article/details/132666851

博主推荐文章:python人脸识别统计人数qt窗体-CSDN博客

博主推荐文章:Python Yolov5火焰烟雾识别源码分享-CSDN博客

                         Python OpenCV识别行人入口进出人数统计_python识别人数-CSDN博客

个人博客主页:alicema1111的博客_CSDN博客-Python,C++,网页领域博主

博主所有文章点这里:https://blog.csdn.net/alicema1111?type=blog

相关文章:

Qt+C++自建网页浏览器-Chrome blink最新内核基础上搭建-改进版本

程序示例精选 QtC自建网页浏览器-Chrome blink最新内核基础上搭建-改进版本 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<QtC自建网页浏览器-Chrome blink最新内核基础上搭建-改进版…...

这场科技巨变,有生之年有希望

见到一文&#xff0c;遂分享欲爆棚&#xff0c;总结如下。 具有人类水平的人工智能大约什么时候可以出现&#xff1f; 人类水平的人工智能&#xff0c;指的是&#xff0c;不需要借助人类&#xff0c;机器能够比人类更好地完成每项任务。 针对这个问题&#xff0c;有家机构在201…...

zemax优化功能

1、三种优化方法 zemax的三种优化方法中&#xff0c;局部优化会找到局部的极小值点&#xff0c;全局优化会找到整体的最小值点。 锤形优化适用于先用全局优化找到大概值后&#xff0c;进一步完善光学系统 对于评价函数单调或者局部最小值就是全局最小值的情况&#xff0c;使…...

Centos8关闭IPV6

编辑 /etc/sysctl.conf 文件。 vi /etc/sysctl.conf 放置以下条目以禁用所有适配器的 IPv6。 net.ipv6.conf.all.disable_ipv6 1 net.ipv6.conf.default.disable_ipv6 1 您可以使用以下条目为特定网络接口禁用 IPv6。 &#xff08;假设网卡名称是enp0s3&#xff09;。 n…...

华为OD七日集训第4期 - 按算法分类,由易到难,循序渐进,玩转OD

目录 一、适合人群二、本期训练时间三、如何参加四、7日集训第4期五、精心挑选21道高频100分经典题目&#xff0c;作为入门。第1天、数据结构第2天、滑动窗口第3天、贪心算法第4天、二分查找第5天、分治递归第6天、深度优先搜索dfs算法第7天、宽度优选算法&#xff0c;回溯法 六…...

flutter 抓包工具charles

本来的代码是忽略证书 ///忽略https证书校验&#xff0c;也就是能请求https的地址了(_dio?.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate (HttpClient client) {client.badCertificateCallback (X509Certificate cert, String host, int port) > tr…...

——二叉树

二叉树种类 二叉树有两种主要的形式&#xff1a;满二叉树和完全二叉树。 满二叉树 如果一棵二叉树只有度为0的结点和度为2的结点&#xff0c;并且度为0的结点在同一层上&#xff0c;则这棵二叉树为满二叉树。 完全二叉树 在完全二叉树中&#xff0c;除了最底层节点可能没…...

【linux命令讲解大全】103.Linux目录堆栈命令 dirs 的使用方法和选项详解

文章目录 dirs概要主要用途选项参数返回值例子注意 从零学 python dirs 显示目录堆栈。 概要 dirs [-clpv] [N] [-N] 主要用途 显示目录堆栈。 清空目录堆栈。 选项 -c&#xff1a;清空目录堆栈。-l&#xff1a;堆栈内以~开头的目录在显示时展开。-p&#xff1a;将目录堆…...

vue3项目应用font awesome6

element-plus框架的图标icon种类较少&#xff0c;一般无法涵盖所有业务情况 这时候引入font awesome6免费版&#xff0c;图标库非常丰富&#xff0c;一般可以满足所有业务场景 官网&#xff1a;https://fa6.dashgame.com/Font Awesome 6&#xff0c;一套始终绝佳的图标字体库…...

【JavaScript】JS语法入门到实战

文章目录 一、初识JavaScript1. 什么是JavaScript&#xff1f;2. JavaScript 和 HTML 和 CSS 之间的关系3. JavaScript的运行过程4. JavaScript的组成 二、JavaScript的书写形式三、变量1. 输入输出2. 变量的使用3. 数据类型 四、运算符五、分支和循环语句1. 分支语句2. 循环语…...

【Linux】工具Gdb调试轻度使用(C++)

目录 一、Gdb背景 二、Gdb基本命令 【2.1】list | l 【2.2】break | b 【2.5】delete | d 【2.6】disable 【2.7】enable 【2.3】info 【2.4】info locals 【2.6】run | r 【2.7】next | n 【2.8】step | s 【2.9】 continue | c 【2.10】bt 【2.11】finish 三…...

linux xhost命令

xhost命令 XHOST 用于管理允许访问系统上 X Server 的主机和用户列表&#xff0c;这些主机和用户都可以从其他主机和同一系统上的其他用户访问。 通常&#xff0c;远程访问将被禁用&#xff0c;因为它会带来安全风险。 但是&#xff0c;如果我们需要在远程计算机上运行 GUI &…...

linux在线源码阅读网站

下面的网站可以在线阅读linux源码&#xff0c;提供了类似github上分析工具&#xff0c;自动具备符号关联的作用&#xff0c;可以方便的供用户分析代码。除了可以分析linux源码外&#xff0c;该网站还可以分析一些其它源码&#xff0c;例如qt等 这个网站有许多功能&#xff0c;…...

css中只使用vue的变量

参考&#xff1a;https://blog.csdn.net/FellAsleep/article/details/130617163 1、必须作用在用一个div上 2、变量必须有双横杠“–” <spanclass"bb" :style"spanStyle">11</span>data() {return {spanStyle: {"--color": #bfa /…...

华为云云耀云服务器L实例评测 | 由于自己原因导致MySQL数据库被攻击 【更新中。。。】

目录 引出起因&#xff08;si因&#xff09;解决报错诶嘿&#xff0c;连上了 不出意外&#xff0c;就出意外了打开数据库what&#xff1f;&#xff1f;&#xff1f; 找华为云求助教训&#xff1a;备份教训&#xff1a;密码 解决1.改密码2.新建一个MySQL&#xff0c;密码设置复杂…...

如何查询成绩或工资

为什么每次查询成绩或者工资的时候都觉得麻烦又耗时呢&#xff1f;在过去&#xff0c;我们可能需要去学校或公司的相关部门&#xff0c;填写繁琐的表格&#xff0c;然后等待工作人员进行查询和处理。这不仅浪费了我们宝贵的时间&#xff0c;还可能出现查询结果不准确或者遗漏的…...

FPGA原理与结构——时钟IP核的使用与测试

一、前言 本文介绍xilinx的时钟IP核 Clocking Wizard v6.0的具体使用与测试过程&#xff0c;在学习一个IP核的使用之前&#xff0c;首先需要对于IP核的具体参数和原理有一个基本的了解&#xff0c;具体可以参考&#xff1a; FPGA原理与结构——时钟IP核原理学习https://blog.c…...

手搓消息队列【RabbitMQ版】

什么是消息队列&#xff1f; 阻塞队列&#xff08;Blocking Queue&#xff09;-> 生产者消费者模型 &#xff08;是在一个进程内&#xff09;所谓的消息队列&#xff0c;就是把阻塞队列这样的数据结构&#xff0c;单独提取成了一个程序&#xff0c;进行独立部署~ --------&…...

Oracle VM VirtualBox 安装 Ubuntu Linux

Virtual Box VirtualBox是一个强大的、面向个人用户或者企业用户的虚拟机产品&#xff0c;其支持x86以及AMD64/Intel64的计算架构&#xff0c;功能特性丰富、性能强劲&#xff0c;支持GPL开源协议&#xff0c;其官方网址是www.virtualbox.org&#xff0c;由Oracle开源&#xf…...

3D WEB轻量化引擎HOOPS Commuicator技术概览(一):数据导入与加载

HOOPS Communicator是一款功能强大的SDK&#xff0c;适用于基于Web的高级工程应用程序&#xff0c;代表HOOPS Web平台的Web开发组件。使用HOOPS Communicator&#xff0c;您可以构建一个在 Web浏览器中提供3D模型的Web应用程序。 HOOPS Communicator可以本地加载多种模型格式。…...

如何高效提取网页SVG内容:3步实现可视化数据导出

如何高效提取网页SVG内容&#xff1a;3步实现可视化数据导出 【免费下载链接】svg-crowbar Extracts an SVG node and accompanying styles from an HTML document and allows you to download it all as an SVG file. 项目地址: https://gitcode.com/gh_mirrors/sv/svg-crow…...

目标检测新手必看:如何用Python手写IOU计算函数(附完整代码)

目标检测实战&#xff1a;从零编写Python版IOU计算函数 刚接触目标检测时&#xff0c;最让人困惑的莫过于那些神秘的评估指标。其中IOU&#xff08;交并比&#xff09;就像一把尺子&#xff0c;能量化算法预测框与真实框的贴合程度。但纸上得来终觉浅&#xff0c;今天我们就用P…...

NPU vs GPU:为什么你的AI项目需要专用神经网络处理器?

NPU vs GPU&#xff1a;为什么你的AI项目需要专用神经网络处理器&#xff1f; 当你在深夜调试一个实时人脸识别模型时&#xff0c;GPU风扇的轰鸣声是否让你担心电费账单&#xff1f;当部署在边缘设备的图像分类服务因为响应延迟被客户投诉时&#xff0c;是否考虑过硬件选型可能…...

RevokeMsgPatcher 2.1 终极指南:Windows平台微信QQ消息防撤回实战解决方案

RevokeMsgPatcher 2.1 终极指南&#xff1a;Windows平台微信QQ消息防撤回实战解决方案 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址:…...

3分钟搞定!Windows 11 LTSC 24H2微软商店终极安装指南

3分钟搞定&#xff01;Windows 11 LTSC 24H2微软商店终极安装指南 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否正在使用Windows 11 24H2 LTS…...

PyTorch 2.8镜像保姆级教程:RTX 4090D下模型量化工具AutoGPTQ实操

PyTorch 2.8镜像保姆级教程&#xff1a;RTX 4090D下模型量化工具AutoGPTQ实操 1. 环境准备与快速部署 在开始使用AutoGPTQ进行模型量化之前&#xff0c;我们需要确保PyTorch 2.8镜像环境已经正确部署。本镜像专为RTX 4090D 24GB显卡优化&#xff0c;预装了CUDA 12.4和所有必要…...

【ComfyUI】Qwen-Image-Edit-F2P 环境配置全攻略:Anaconda创建独立Python环境

ComfyUI Qwen-Image-Edit-F2P 环境配置全攻略&#xff1a;Anaconda创建独立Python环境 你是不是也遇到过这种情况&#xff1a;好不容易找到一个好用的AI图像编辑模型&#xff0c;比如Qwen-Image-Edit-F2P&#xff0c;兴冲冲地准备在ComfyUI里跑起来&#xff0c;结果第一步安装…...

阅读书源校验工具verifyBookSource v2.0避坑指南:如何避免无效书源和重复书源

verifyBookSource v2.0 高效书源管理实战&#xff1a;从校验到优化的完整指南 在数字阅读日益普及的今天&#xff0c;一个优质的书源库能显著提升阅读体验。然而&#xff0c;面对海量书源&#xff0c;如何快速筛选有效内容、剔除重复资源&#xff0c;成为许多阅读爱好者的痛点。…...

从零到一:Vision Pro工业视觉软件安装与配置实战指南

1. Vision Pro工业视觉软件入门指南 第一次接触Vision Pro的朋友可能会被这个强大的工业视觉软件震撼到。作为康耐视的拳头产品&#xff0c;它在汽车制造、电子检测、包装印刷等行业应用广泛。我刚开始用的时候也是一头雾水&#xff0c;但跟着正确的步骤走&#xff0c;其实安装…...

AudioSeal效果展示:实测音频隐形水印,听不出区别但能精准检测

AudioSeal效果展示&#xff1a;实测音频隐形水印&#xff0c;听不出区别但能精准检测 1. 音频水印技术概述 1.1 什么是音频隐形水印 音频隐形水印是一种将数字标识信息嵌入到音频信号中的技术&#xff0c;这些信息对人类听觉系统几乎不可感知&#xff0c;但可以通过专用算法…...