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

QWebEngine

Qt自带的QWebEngine 不支持播放MP4, 需要手动编译QWebEngine模块

在这里插入图片描述

不支持播放mp4

// mainwindow.cpp
, m_webEngine(new MyWebEngine(this))
void MainWindow::init()
{   //关闭系统代理,提高速度,采用release会更快QNetworkProxyFactory::setUseSystemConfiguration(false);setCentralWidget(m_webEngine);
}
// mywebengine.h
#include <QWebEngineView>
#include <QWebEnginePage>class QUrl;
class WebView : public QWebEngineView
{Q_OBJECT
public:explicit WebView(QWidget *parent = nullptr);
protected:QWebEngineView* createWindow(QWebEnginePage::WebWindowType type) override;
private:void initControl();
private:QUrl	url;
};class MyWebEngine: public QWidget{Q_OBJECT
public:explicit MyWebEngine(QWidget*parent = nullptr);
};
#endif // MYWEBENGINE_H
// mywebengine.cpp
#include "mywebengine.h"
#include <QWebEngineFullScreenRequest>
#include <QWebEngineSettings>
#include <QWebEngineView>
#include <QLineEdit>
#include <QToolButton>
#include <QBoxLayout>WebView::WebView(QWidget *parent)
{setAttribute(Qt::WA_DeleteOnClose);settings()->setAttribute(QWebEngineSettings::FullScreenSupportEnabled,true);initControl();
}QWebEngineView *WebView::createWindow(QWebEnginePage::WebWindowType) {load(url);return nullptr;
}void WebView::initControl()
{connect(page(), &QWebEnginePage::linkHovered, this,[=](const QString &u){url.setUrl(u);});connect(page(),&QWebEnginePage::fullScreenRequested,this,[=](QWebEngineFullScreenRequest pageRequeset) {pageRequeset.accept();});
}MyWebEngine::MyWebEngine(QWidget *parent)
{auto vlayout = new QVBoxLayout(this);auto layout = new QHBoxLayout(this);auto *back = new QToolButton(this);    back->setText("<");auto *forword = new QToolButton(this); forword->setText(">");auto *reload = new QToolButton(this);  reload->setText("刷新");auto *go = new QToolButton(this);      go->setText("Go");auto *input = new QLineEdit(this);input->setClearButtonEnabled(true);input->setText("https://www.baidu.com");auto *view = new WebView(this);setStyleSheet(R"(QToolButton,QLineEdit{height:30px;border-radius:2px;}
QLineEdit{font-size:14px;padding:0 0 0 8; border:none;border-radius:13px;}
QToolButton:hover,QLineEdit:hover{border:1px solid #4999FA;background-color:#DDEEFF}
)");layout->addWidget(back);layout->addWidget(forword);layout->addWidget(reload);layout->addWidget(input);layout->addWidget(go);layout->setContentsMargins(0,0,0,0);layout->setSpacing(0);vlayout->setContentsMargins(0,0,0,0);vlayout->setSpacing(0);vlayout->addLayout(layout);vlayout->addWidget(view);connect(forword,&QToolButton::clicked,view,&QWebEngineView::forward);connect(back,&QToolButton::clicked,view,&QWebEngineView::back);connect(reload,&QToolButton::clicked,view,&QWebEngineView::reload);connect(go,&QToolButton::pressed,this,[=](){auto url = input->text().trimmed();// if(!url.contains("www")) url = "www."+url;if(!url.contains("http"))url = "https://"+url;// qDebug()<< "url:" << url;input->setText(url);view->load(url);});connect(input,&QLineEdit::returnPressed,go,&QToolButton::pressed);connect(view,&QWebEngineView::urlChanged,this,[=](const QUrl &u){input->setText(u.toString());});emit go->pressed();
}
http://www.xdnf.cn/news/14017.html

相关文章:

  • 以楼宇自控关键技术,夯实现代低碳建筑发展重要基础
  • Android多渠道打包
  • 14-域名解析DNS 自我总结
  • 【浅谈】Agent 的存在具有什么意义
  • 好用的批量处理软件,免费使用!
  • 鸿蒙Next仓颉语言开发实战教程:订单详情
  • Linux系统下安装RocketMQ5.3
  • 第二十六章 26.Network Automation(CCNA)
  • 居家养老:破解老龄化困局的现实选择
  • 【C/C++】gmock vs mockcpp
  • Server 11 ,⭐通过脚本在全新 Ubuntu 系统中安装 Nginx 环境,安装到指定目录( 脚本安装Nginx )
  • Houdini GPU 云渲染:成本与时间的精准测算
  • 《TCP/IP 详解 卷1:协议》第7章:防火墙和网络地址转换
  • PCB设计教程【大师篇】stm32开发板PCB整体布局
  • LLM之RAG实战(五十五)| 阿里开源新模型,Qwen3-Embedding与Qwen3 Reranker强势来袭!
  • curl 检查重定向的命令总结
  • “窮” 字拆解分析:从字形到文化的深度解构
  • Amazon Linux 2023 配置定时任务完全指南:cronie安装与使用
  • Day53打卡 @浙大疏锦行
  • 淘宝天猫商品数据爬取方案:官方API与非官方接口对比
  • OpenLayers 图层控制
  • 《 第三章-招式初成》 C++修炼生涯笔记(基础篇)程序流程结构
  • 网络原理10 - HTTP完
  • 【Spreadsheet】香港规范结构设计电子表格库开发方案
  • postman Access denied for user‘root‘@‘XXXXXXXX(using password: YES)
  • Flotherm许可管理工具和软件
  • 【强化学习漫谈】4. 从统一视角看 LLM Post-Training
  • 透视黄金窗口:中国有机杂粮的高质量跃迁路径
  • 瑞萨RA-T系列芯片马达类工程TCM加速化设置
  • 爬虫系统异常监控并邮件通知源码