Как решить проблему с параметром фильтра QFileDialog? - PullRequest
0 голосов
/ 07 января 2019

Я хочу создать диалоговое окно файла, используя 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 Ответ

0 голосов
/ 07 января 2019

Как показывает в примере документов , вы не должны использовать запятые для разделения расширений:

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)
...