无法使用 PyQt5 从路径打开文件
Posted
技术标签:
【中文标题】无法使用 PyQt5 从路径打开文件【英文标题】:Can't open file from path using PyQt5 【发布时间】:2021-06-08 12:00:07 【问题描述】:我正在尝试使用 PyQt5 为媒体播放器编写代码。我已经学习了很多教程,但我不知道如何从计算机上的本地路径打开文件。 到目前为止,我的脚本从网站下载了一些视频,然后将其保存到我的计算机中。之后,我可以看到一个包含我下载的不同视频的列表,我想选择一个并使用路径打开它。问题出在这里:
def openVideo(self, videoPath):
if videoPath != '':
self.mediaPlayer.setMedia(QMediaContent(QUrl(videoPath).path()))
self.playButton.setEnabled(True)
self.mediaPlayer.play()
QUrl 无法读取 str 类型变量,videoPath 是一个字符串,其中包含我选择的视频的路径。
【问题讨论】:
QUrl does 读取字符串,重要的是字符串的 content,但由于您没有给我们提供这些路径的示例,不可能帮你。另外,你不应该使用path()
。
【参考方案1】:
你可以使用QUrl::fromLocalFile
self.mediaPlayer.setMedia(QMediaContent(QUrl::fromLocalFile(videoPath).path()))
文档:https://doc.qt.io/qtforpython-5/PySide2/QtCore/QUrl.html#PySide2.QtCore.PySide2.QtCore.QUrl.fromLocalFile
【讨论】:
【参考方案2】:您还没有描述解释器输出的错误。据我们所知,videoPath 确实可以等于''
!
假设错误是您所描述的,您是否尝试过使用QUrl::fromLocalFile
?
From the docs:
返回 localFile 的 QUrl 表示,解释为本地文件。此函数接受由斜杠分隔的路径以及该平台的本机分隔符。
【讨论】:
以上是关于无法使用 PyQt5 从路径打开文件的主要内容,如果未能解决你的问题,请参考以下文章
PyQt5 技巧篇-解决相对路径无法加载图片问题,styleSheet通过"相对"路径加载图片,python获取当前运行文件的绝对路径。