天津哪家网站做的好厦门网站开发培训

张小明 2026/1/13 7:07:50
天津哪家网站做的好,厦门网站开发培训,成都哪个公司做网站,怎么免费自己做网站QWebEngine 实战#xff1a;自定义右键菜单、文件下载、Cookie 管理与 User-Agent 设置QWebEngine 基于 Chromium 内核#xff0c;功能强大#xff0c;但很多能力需要手动扩展才能满足业务需求。本文将通过四个常见场景#xff0c;给出可直接使用的代码示例#xff1a;自定…QWebEngine 实战自定义右键菜单、文件下载、Cookie 管理与 User-Agent 设置QWebEngine基于Chromium内核功能强大但很多能力需要手动扩展才能满足业务需求。本文将通过四个常见场景给出可直接使用的代码示例自定义右键菜单ContextMenu文件下载管理DownloadCookie 读取 / 设置 / 持久化UserAgent 自定义1. 自定义右键菜单Context MenuQWebEngineView默认使用Chromium的菜单如果我们想接管右键菜单禁用默认菜单setContextMenuPolicy(Qt::CustomContextMenu)捕获右键事件自己定义QAction在页面中执行 JS 或 C 逻辑1.1 右键菜单 DemoMyWebView.h#pragma once #include QWebEngineView class MyWebView : public QWebEngineView { Q_OBJECT public: explicit MyWebView(QWidget *parent nullptr); private slots: void onCustomContextMenuRequested(const QPoint pos); };MyWebView.cpp#include MyWebView.h #include QMenu #include QClipboard #include QApplication MyWebView::MyWebView(QWidget *parent) : QWebEngineView(parent) { setContextMenuPolicy(Qt::CustomContextMenu); connect(this, QWebEngineView::customContextMenuRequested, this, MyWebView::onCustomContextMenuRequested); } void MyWebView::onCustomContextMenuRequested(const QPoint pos) { QMenu menu; QAction *reloadAct menu.addAction(刷新); QAction *copyUrlAct menu.addAction(复制当前 URL); QAction *inspectAct menu.addAction(打开 DevTools); QAction *sel menu.exec(mapToGlobal(pos)); if (!sel) return; if (sel reloadAct) { reload(); } elseif (sel copyUrlAct) { QApplication::clipboard()-setText(url().toString()); } elseif (sel inspectAct) { page()-setDevToolsPage(new QWebEnginePage(page()-profile())); } }2. 文件下载管理DownloadQWebEngineProfile有信号void downloadRequested(QWebEngineDownloadItem *download)我们可以接管文件下载流程比如指定保存路径显示下载进度保存完成回调2.1 下载示例MainWindow 构造函数中添加connect(profile, QWebEngineProfile::downloadRequested, this, MainWindow::onDownloadRequested);2.2 下载代码示例void MainWindow::onDownloadRequested(QWebEngineDownloadItem *item) { QString path QFileDialog::getSaveFileName( this, 保存文件, item-path(), ); if (path.isEmpty()) { item-cancel(); return; } item-setPath(path); item-accept(); connect(item, QWebEngineDownloadItem::receivedBytesChanged, this, [item]() { qDebug() 下载进度: item-receivedBytes() / item-totalBytes(); }); connect(item, QWebEngineDownloadItem::finished, this, [item]() { qDebug() 下载完成 item-path(); }); }3. 管理 Cookie读取 / 写入 / 持久化Qt 的 Cookie 管理核心类QWebEngineCookieStore从 profile 获取支持添加、删除、监听变化3.1 获取 CookieStoreQWebEngineCookieStore *store page()-profile()-cookieStore();3.2 读取 Cookie 示例store-loadAllCookies(); connect(store, QWebEngineCookieStore::cookieAdded, this, [](const QNetworkCookie cookie){ qDebug() Cookie Added: cookie.name() cookie.value(); });3.3 设置 Cookie 示例QNetworkCookie cookie; cookie.setName(token); cookie.setValue(123456789); cookie.setDomain(example.com); cookie.setPath(/); cookie.setExpirationDate(QDateTime::currentDateTime().addDays(7)); page()-profile()-cookieStore()-setCookie(cookie);3.4 删除 Cookie 示例store-deleteCookie(cookie);3.5 Cookie 持久化Qt 默认在 profile 中持久化Cookie确保你使用的是持久 profileQWebEngineProfile *profile new QWebEngineProfile(MyProfile, this); profile-setPersistentCookiesPolicy(QWebEngineProfile::AllowPersistentCookies); profile-setPersistentStoragePath(data/profile);4. 自定义 User-AgentQWebEngineProfile 可设置 UA4.1 设置 UApage()-profile()-setHttpUserAgent( MyBrowser/1.0 (QtWebEngine Based) );4.2 在加载前动态修改 UA可按域名区分 UAconnect(page(), QWebEnginePage::urlChanged, this, [this](const QUrl url){ if (url.host().contains(mobile)) { page()-profile()-setHttpUserAgent( Mozilla/5.0 Mobile Safari/537.36 ); } else { page()-profile()-setHttpUserAgent( Mozilla/5.0 Desktop Safari/537.36 ); } });5. 完整 Demo可直接运行下面是一个最小项目包含自定义右键菜单下载Cookie 监听UA 设置main.cpp#include QApplication #include MainWindow.h int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }MainWindow.h#pragma once #include QMainWindow #include QWebEngineView #include QWebEngineProfile class MainWindow :public QMainWindow { Q_OBJECT public: MainWindow(); private slots: void onDownloadRequested(QWebEngineDownloadItem *item); private: QWebEngineView *view; QWebEngineProfile *profile; };MainWindow.cpp#include MainWindow.h #include MyWebView.h #include QVBoxLayout #include QFileDialog MainWindow::MainWindow() { profile new QWebEngineProfile(MyProfile, this); profile-setPersistentStoragePath(data/); profile-setPersistentCookiesPolicy(QWebEngineProfile::AllowPersistentCookies); profile-setHttpUserAgent(MyQtBrowser/1.0); view new MyWebView(); QWebEnginePage *page new QWebEnginePage(profile, view); view-setPage(page); connect(profile, QWebEngineProfile::downloadRequested, this, MainWindow::onDownloadRequested); setCentralWidget(view); view-load(QUrl(https://www.qt.io)); } void MainWindow::onDownloadRequested(QWebEngineDownloadItem *item) { QString file QFileDialog::getSaveFileName(this, 保存文件, item-path()); if (file.isEmpty()) { item-cancel(); return; } item-setPath(file); item-accept(); }总结本文展示了 QWebEngine 浏览器开发中最常用的四大功能功能核心类重点自定义右键菜单QWebEngineView捕获 customContextMenuRequested文件下载管理QWebEngineDownloadItem接受下载、显示进度Cookie 管理QWebEngineCookieStore监听、设置、持久化User-Agent 自定义QWebEngineProfile动态 UA / 全局 UA这些能力在构建桌面浏览器、内嵌网页容器、H5 AppShell 中都是必需的。往期精彩回顾☞QWebEngine 常用 API 全面梳理☞ QWebEngine 系列组件全关系梳理☞ QWebEngine 安装、环境准备与版本选择策略关注微信公众号获取最新文章。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

3 建设营销型网站流程图百货店怎么做网站送货

LobeChat:开源AI聊天应用的技术演进与工程实践 在生成式AI浪潮席卷全球的今天,大模型已经不再是实验室里的稀有展品,而是逐渐渗透进每一个开发者的日常工具链。然而,当OpenAI、Claude这些闭源系统展现出惊人能力的同时&#xff0c…

张小明 2026/1/6 3:07:24 网站建设

网站设计佛山郑州今天出啥大事儿了

Unix 文件操作与管道命令实用指南 在 Unix 系统中,有许多强大的工具和命令可以帮助我们高效地处理文件和数据。下面将详细介绍一些常用的操作和命令。 在文件开头添加文本 Unix 没有直接在文件开头添加文本的重定向操作符,但可以通过重命名旧文件并重建文件内容来实现。例…

张小明 2026/1/10 20:45:51 网站建设

网站是什么软件wordpress E405

20倍提速10万亿token训练:智源Emu3.5开启多模态世界模型新纪元 【免费下载链接】Emu3.5-Image 项目地址: https://ai.gitcode.com/BAAI/Emu3.5-Image 导语:从内容生成到世界理解,AI迎来范式转移 2025年10月30日,北京智源…

张小明 2026/1/12 8:12:31 网站建设

单机做游戏 迅雷下载网站江西网站建设企业

基于GPT-SoVITS的语音年龄变化模拟 在影视特效、虚拟角色塑造甚至心理疗愈场景中,人们越来越希望听到“未来的自己”——一个声音随年龄自然演变的版本。然而,现实中几乎没有人能保留童年与老年时期的录音用于对比。传统变声技术往往依赖简单的音高拉伸或…

张小明 2026/1/7 7:01:32 网站建设

苗木网站建设做网站公司广州

第一章:R语言科研绘图的核心优势R语言在科研数据可视化领域占据重要地位,其强大的图形系统和丰富的扩展包为研究人员提供了高度灵活且精确的绘图能力。无论是基础的散点图还是复杂的多维数据展示,R都能通过简洁的语法实现专业级图表输出。卓越…

张小明 2026/1/6 3:07:22 网站建设

福州网站设计wordpress数据统计

Homarr是一个功能强大的可定制化浏览器主页工具,专门设计用于与您家庭服务器的Docker容器(如Sonarr/Radarr等)进行交互。通过本完整指南,您将深入了解如何快速部署和配置这个现代化的应用仪表盘。🚀 【免费下载链接】h…

张小明 2026/1/6 3:19:26 网站建设