如何解决QFileDialog的filter参数问题?

时间:2019-01-06 21:30:23

标签: python pyqt5 pyside2 qfiledialog qmediaplayer

我想使用 QFileDialog 创建文件对话框,以选择要在 QMediaPlayer 中设置的文件扩展名(*。mp3, * .ogg,*。flac)。 不幸的是,它不起作用,因为它应该将最后一个扩展名作为filter属性。

我已经为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})")

我希望它显示具有所有这些扩展名的文件。

1 个答案:

答案 0 :(得分:0)

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)