Как решить проблему с параметром фильтра QFileDialog?
Я хочу создать файловый диалог, используя 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})")
Я ожидал, что он покажет файлы со всеми этими расширениями.
1 ответ
Решение
Как показывает пример документации, вы не должны использовать запятые для разделения расширений:
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)