我最近开始使用PyQt4创建一个Web浏览器,直到我遇到问题。当我打开youtube时,我意识到我无法观看视频。经过一些研究,我找到了这个解决方案:
QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled, True)
然而,当我尝试打开youtube视频时,它会显示一个空白屏幕。当我重新加载页面时,会显示一条简短的错误消息:
Play Back Is Not Supported On This Device
我尝试在Chrome浏览器中观看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
答案 0 :(得分:0)
我也有这个问题,我想我可能会有答案。 PyQt4
不是用Python开发Qt应用程序的唯一选择,还有PySide
。
您可以通过pip安装它:
pip install -U PySide
或程序包管理器(如果使用Linux):
sudo apt-get install python-pyside
或对于python3:
sudo apt-get install 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时,您不必发布Web浏览器的源代码。