使用QT与Web混合编程

使用QT开发客户端软件/桌面软件具有执行效率&&跨平台的相对优势,但是在网页中大量使用了Javascript等脚本语言,使用QT开发客户端软件避不开与web的交互,也就涉及到使用QT中的方法调用Javascript等方法。

我在QT6.6的版本使用中觉得qt与网页的交互还是很方便的。先说最重要的一点前提,构建套件(kit,其实就是编译器)不能用MinGW,必须使用MSVC2019或更新版本,要调用其中的WebEngineView。关于如何在开发环境中配置MSVC2019相关内容,请自行搜索。推荐一篇:

QT6安装添加MSVC2019编译环境_qt msvc2019-CSDN博客

使用msvc2019的套件之后,首先引入的一个问题就是链接库增加了。这在可执行程序最后打包的过程中会很明显的感受到。

构建工程过程中,QT6的工程文件.pro中需要添加:

cpp 复制代码
QT += webenginewidgets # 添加webengine模块

QT6对WebEngineView的编译成功后,程序中可以很方便加载固定的网页。示例如下:

cpp 复制代码
QString fst = "https://www.baidu.com/";设置初始链接。

ui->adressEdit->setText(fst);

QString url = ui->adressEdit->text();

m_webView->load(url);

这就可以加载网页了,运行即可自动加载置顶页面。但这里有两个问题:1. 鼠标点击网页中的链接不能打开。2. mp4视频不能自动播放。

解决第一个问题,需要编程,重写

cpp 复制代码
QWebEngineView *createWindow(QWebEnginePage::WebWindowType type);

要么override重写该函数,要么重新建一个类,继承QWebEngineView,在新类中重写该函数。

详细过程可以搜索案例,或者参考:【Qt 学习之路】QWebEngineView的使用示例-CSDN博客

根据自己的实际情况可以调整。

解决第二个问题,需要重新编译WebEngineView.exe,据说很麻烦,编译很久。我从网上找了一个编译成功的案例,案例采用QT6.2.4,但在我的QT6.7版本中可以使用。

QT6.2.4-webengine自编译,支持mp4等视频播放。这里删除了pdb。_qt6webengine资源-CSDN文库

就记录这么多,有资源上传了。

相关推荐
qq_2518364572 小时前
springboot vue3 开发实现 拼豆管理系统
java·开发语言·ai编程
郑州光合科技余经理3 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
知识分享小能手3 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
+VX:Fegn08953 小时前
计算机毕业设计|基于springboot + vue旅游管理系统(源码+数据库+文档)
java·开发语言·vue.js·spring boot·课程设计
阿里嘎多学长4 小时前
2026-09-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管
江湖人称菠萝包5 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter9-Qt Charts
笔记·qt·qt5
扶尔魔ocy5 小时前
【QT android】环境安装及第一个QT项目
qt·andriod开发
weixin_307779136 小时前
C++代码实现MATLAB中的ode23tb函数功能
开发语言·c++·算法·matlab
2601_966949656 小时前
为什么量化回测中 for 循环比 DataFrame 慢三个数量级?从向量化原理讲起
开发语言·python·pandas·股票数据·quantdash
边境悍匪7 小时前
蜗牛学苑 Java 智能体学习 Day45|Knife4j+SpringBoot3、书城项目整合 MyBatis 思维导图复盘
java·开发语言·vue.js·学习·spring