我最近开始使用 PyQt4 创建 Web 浏览器,直到遇到问题。当我打开 youtube 时,我意识到我无法观看视频。经过一些研究,我找到了这个解决方案:
QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, True)
但是,当我尝试打开 YouTube 视频时,它会显示空白屏幕。当我重新加载页面时,会出现一条简短的错误消息:
Play Back Is Not Supported On This Device
我尝试在 chromium 浏览器中观看 youtube 视频,效果非常好。
我决定也试试这个方法:
self.Tab2Web.settings().setAttribute(QWebSettings.PluginsEnabled, True)
问题仍然存在。
相关代码如下:
class Ui_MainWindow(QtGui.QTabWidget):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(1283, 756)
QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, True)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
如果我遗漏了什么,可以找到完整的代码here
最佳答案
从 PyQt4 切换到 PySide
我也有这个问题,我想我可能有答案。 PyQt4
并不是在 python 中开发 Qt 应用程序的唯一选择,还有 PySide
。
可以通过pip安装:
pip 安装 -U PySide
或者包管理器(如果你使用 linux):
sudo apt-get 安装 python-pyside
或者对于 python3:
sudo apt-get 安装 python3-pyside
安装完成后,将 PyQt4 导入替换为:
from PySide import QtCore, QtGui
from PySide import QtWebKit
from PySide.QtWebKit import QWebSettings
from PySide.QtCore import Slot as pyqtSlot
from PySide.QtCore import QUrl
from PySide.QtNetwork import QNetworkRequest, QNetworkAccessManager
一切看起来和功能都应该完全一样,希望网络浏览器的 youtube 能正常工作。
另一个好处是 PySide 拥有 LGPL
许可,而 PyQt4 拥有 GPL
许可,因此,在使用 PySide 时,您不必为您的网站发布源代码浏览器。
关于python - QwebView 不播放 Youtube 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43711059/