youtube视频嵌入pyqt
Posted
技术标签:
【中文标题】youtube视频嵌入pyqt【英文标题】:youtube video embedding pyqt 【发布时间】:2018-01-04 21:15:59 【问题描述】:如何使用 PyQt5 嵌入 youtube 视频?我尝试执行以下操作,但它给了我一个未解决的错误:
DirectShowService:doRender 未解决的错误代码
from PyQt5 import QtWidgets,QtCore,QtGui
import sys, time
from PyQt5.QtCore import Qt,QUrl
from PyQt5 import QtWebKit
from PyQt5 import QtWebKitWidgets
from PyQt5.QtWebKit import QWebSettings
#from PyQt5 import QtWebEngineWidgets #import QWebEngineView,QWebEngineSettings
class window(QtWidgets.QMainWindow):
def __init__(self):
QWebSettings.globalSettings().setAttribute(QWebSettings.PluginsEnabled,True)
super(window,self).__init__()
self.centralwid=QtWidgets.QWidget(self)
self.vlayout=QtWidgets.QVBoxLayout()
self.webview=QtWebKitWidgets.QWebView()
self.webview.setUrl(QUrl("https://www.youtube.com/watch?v=Mq4AbdNsFVw"))
self.vlayout.addWidget(self.webview)
self.centralwid.setLayout(self.vlayout)
self.setCentralWidget(self.centralwid)
self.show()
app=QtWidgets.QApplication([])
ex=window()
sys.exit(app.exec_())
【问题讨论】:
【参考方案1】:您正在从 PyQt5(QtWebKit
和 QtWebKitWidgets
)导入一些已弃用的模块。看来您在导入的底部注释掉了正确的路径。
如果您解决了这些问题并使用正确的模块(QtWebEngineCore
、QtWebEngineWidgets
),它就可以在我的系统上运行。
from PyQt5 import QtWidgets,QtCore,QtGui
import sys, time
from PyQt5.QtCore import Qt,QUrl
from PyQt5 import QtWebEngineWidgets
from PyQt5 import QtWebEngineCore
from PyQt5.QtWebEngineWidgets import QWebEngineSettings
class window(QtWidgets.QMainWindow):
def __init__(self):
QWebEngineSettings.globalSettings().setAttribute(QWebEngineSettings.PluginsEnabled,True)
super(window,self).__init__()
self.centralwid=QtWidgets.QWidget(self)
self.vlayout=QtWidgets.QVBoxLayout()
self.webview=QtWebEngineWidgets.QWebEngineView()
self.webview.setUrl(QUrl("https://www.youtube.com/watch?v=Mq4AbdNsFVw"))
self.vlayout.addWidget(self.webview)
self.centralwid.setLayout(self.vlayout)
self.setCentralWidget(self.centralwid)
self.show()
app=QtWidgets.QApplication([])
ex=window()
sys.exit(app.exec_())
我得到的输出如下所示(看起来是正确的):
【讨论】:
实际上我使用的是 Windows(PyQt5,python 3.6),但在导入 EngineCore 和 EngineWidgets 时遇到问题。没有名为 QtWebEngineWidgets 的模块 你的 PyQt5 的确切版本是什么? 精确版本 pyqt -> 5.6 和 qt -> 5.6.2 奇怪。这里的版本相同,仅在 OS X 上。您是否尝试过更新/重新安装 PyQt(不是 qt)? 会是windows的问题吗?以上是关于youtube视频嵌入pyqt的主要内容,如果未能解决你的问题,请参考以下文章