无法使用 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获取当前运行文件的绝对路径。

如何更改标签以使用 PyQt5 显示文件路径?

无法在 PyQt5 中打开多个窗口

使用 fbs 时无法在 pyqt5 中设置图标

PyQt5:QMediaPlayer 无法从 QBuffer 重放音频

pycharm无法调用pip安装的包怎么办