如何解决QFileDialog的过滤参数问题?

2024-10-03 11:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个文件对话框,使用QFileDialog来选择要在QMediaPlayer中设置的具有文件扩展名掩码的音频文件(*.mp3,*.ogg,*.flac)。 不幸的是,它不工作,因为它应该采取的最后一个扩展作为过滤器属性。你知道吗

我对PyQt5和PySide2试过这个,结果是一样的。它仅显示过滤器列表中具有最新扩展名的文件,例如*.mp3或*.flac

audioFormats = "*.mp3, *.wav, *.ogg, *.wma, *.flac"
print(f"these are formats: {audioFormats}")
self.track, _ = self.getOpenFileName(parent=self, caption="Set track file", filter=f"Audio files ({audioFormats})")

我希望它能显示所有这些扩展名的文件。你知道吗


Tags: 文件self过滤器属性trackmp3音频文件pyqt5
1条回答
网友
1楼 · 发布于 2024-10-03 11:19:21

正如the example of the docs所指出的,不应使用逗号分隔扩展:

from PyQt5 import QtWidgets

if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    audioFormats = "*.mp3 *.wav *.ogg *.wma *.flac" # without commas
    filename, _ = QtWidgets.QFileDialog.getOpenFileName(parent=None, 
        caption="Set track file",
        filter=audioFormats)
    if filename:
        print(filename)

相关问题 更多 >