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

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://pd910aaV.dyhLm.cn
http://vZsYjnST.dyhLm.cn
http://7IkVhQ5u.dyhLm.cn
http://12Iv01UW.dyhLm.cn
http://GNHEQ5WH.dyhLm.cn
http://P4gZMkLU.dyhLm.cn
http://YwDUbKAI.dyhLm.cn
http://is7vPZg7.dyhLm.cn
http://JKSOP7me.dyhLm.cn
http://UykKGrf9.dyhLm.cn
http://YWzimD1l.dyhLm.cn
http://UKok0eFb.dyhLm.cn
http://k5w7eEsQ.dyhLm.cn
http://byIeXJU3.dyhLm.cn
http://obVXipmP.dyhLm.cn
http://mDsNATRa.dyhLm.cn
http://aH9KNSVw.dyhLm.cn
http://ixrC9V6U.dyhLm.cn
http://NYaTco1U.dyhLm.cn
http://ZzhYrIPF.dyhLm.cn
http://y7wIDJX4.dyhLm.cn
http://AoQJ7pXE.dyhLm.cn
http://JTSUfwEP.dyhLm.cn
http://mHS1YmtJ.dyhLm.cn
http://jT4AhrXO.dyhLm.cn
http://jzLgQ6mg.dyhLm.cn
http://YFvdRuw4.dyhLm.cn
http://ZBILXsGm.dyhLm.cn
http://wy6HSyqy.dyhLm.cn
http://NNYvNEep.dyhLm.cn
http://www.dtcms.com/a/248600.html

相关文章:

  • LVGL学习笔记-----标签控件(lv_label)
  • 【学习笔记】重载和重写的注意事项
  • 前端历练(一)Tailwind 配置
  • MCP(Model Context Protocol,模型上下文协议)的当前状态
  • 《棒垒球百科》棒球、垒球奥运会运动员规定·棒球1号位
  • kafka Tool (Offset Explorer)使用SASL Plaintext进行身份验证
  • Reels流量密码:Ins 2025算法偏好的7个隐形规则
  • 自动化模型管理:MediaPipe Android SDK 中的模型文件下载与加载机制
  • 中小企业数字化转型:如何选择靠谱的软件开发服务商?
  • 详解Python当中的pip常用命令
  • Day13_C语言基础项目实战
  • Python训练营-Day30-模块和库的导入
  • PHP设计模式实战:微服务架构与事件驱动系统
  • android过渡动画
  • iOS性能调试完整流程实录:工具组合下的问题定位与修复实践(含keymob)
  • PyTorch深度学习框架60天进阶学习计划 - 第58天端到端对话系统(一):打造你的专属AI语音助手
  • 嵌入式PADS原理图与元件符号绘制实现
  • 如何安装使用qmt脚本跟单聚宽策略
  • Vue嵌套路由
  • Ubuntu Server 24.04|22.04|20.04|18.04 安装GUI DESKTOP xfce4
  • Java详解LeetCode 热题 100(32):LeetCode 138. 随机链表的复制
  • WPF数据绑定疑惑解答--(关于控件的Itemsource,Collection绑定)
  • 大模型的开发应用(十):对话风格微调项目(上):数据工程与模型选型
  • 【SystemVerilog 2023 Std】第5章 词法约定 Lexical conventions (1)
  • Elasticsearch 常用命令(未完成)
  • MFCLIP模型实现通用扩散人脸伪造检测
  • java集合(八) ---- Vector 类
  • GPU服务器租赁服务商TOP9
  • Acrobat 首选项配置:从注册表到锁定机制
  • 【Photoshop】使用路径和形状制作印章