如何解决 QFileDialog 的过滤参数问题?
How to solve an issue with QFileDialog's filter parameter?
我想创建一个文件对话框,使用 QFileDialog,选择要在 QMediaPlayer 中设置的音频文件,文件扩展名掩码(*.mp3, *.ogg, *.flac)。
不幸的是,它不起作用,因为它应该将最后一个扩展作为过滤器 属性。
我已经在 PyQt5 和 PySide2 上试过了,结果是一样的。它在过滤器列表中显示具有最新扩展名的文件,例如 *.mp3 或 *.flac only
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})")
我希望它能显示所有这些扩展名的文件。
如 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)
我想创建一个文件对话框,使用 QFileDialog,选择要在 QMediaPlayer 中设置的音频文件,文件扩展名掩码(*.mp3, *.ogg, *.flac)。 不幸的是,它不起作用,因为它应该将最后一个扩展作为过滤器 属性。
我已经在 PyQt5 和 PySide2 上试过了,结果是一样的。它在过滤器列表中显示具有最新扩展名的文件,例如 *.mp3 或 *.flac only
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})")
我希望它能显示所有这些扩展名的文件。
如 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)