在 QWebEngineView 中观看视频时无法使用全屏
Posted
技术标签:
【中文标题】在 QWebEngineView 中观看视频时无法使用全屏【英文标题】:Cannot use fullScreen when watching video in QWebEngineView 【发布时间】:2017-11-16 10:05:48 【问题描述】:使用PyQt5 QWebEngineView,看视频时无法使用fullScreen:
import sys
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtWebEngineWidgets import *
app=QtWidgets.QApplication(sys.argv)
w=QWebEngineView()
w.settings().setAttribute(QWebEngineSettings.PluginsEnabled, True)
w.settings().setAttribute(QWebEngineSettings.javascriptEnabled, True)
w.settings().setAttribute(QWebEngineSettings.FullScreenSupportEnabled, True)
w.page().fullScreenRequested.connect(QWebEngineFullScreenRequest.accept)
w.load(QtCore.QUrl('56.com/w94/play_album-aid-14364505_vid-MTQ3NDUxMjY3.html'))
w.showMaximized()
app.exec_()
【问题讨论】:
56.com/w94/play_album-aid-14364505_vid-MTQ3NDUxMjY3.html
或 http://www.56.com/w94/play_album-aid-14364505_vid-MTQ3NDUxMjY3.html
当您直接访问链接时,它告诉我该地点不存在并将我重定向到主页。
【参考方案1】:
QWebEnginePage::fullScreenRequested 信号有一个名为“request”的参数和一个名为“accept()”的函数。所以你必须打电话
request.accept()
但是您的代码使用类型名称 (QWebEngineFullScreenRequest) 并且没有引用这个确切的对象。
https://doc.qt.io/qt-5/qwebenginepage.html#fullScreenRequested
【讨论】:
【参考方案2】:你可以参考下面的代码:
m_webView->settings()->setAttribute(QWebEngineSettings::FullScreenSupportEnabled, true);
connect(m_webView->page(), &QWebEnginePage::fullScreenRequested, this, [this]
(QWebEngineFullScreenRequest fullScreenRequest)
fullScreenRequest.accept();
qDebug()<<"UI: fullScreenRequested: "<<fullScreenRequest.toggleOn()<<endl;
);
【讨论】:
以上是关于在 QWebEngineView 中观看视频时无法使用全屏的主要内容,如果未能解决你的问题,请参考以下文章
在 Phonegap / Sencha 中观看 YouTube 的最佳实践