QFileDialog为所有支持的图像格式创建一个过滤器

时间:2019-02-18 14:40:22

标签: python pyqt5 pyside2 qbytearray

我想用所有受支持的图像格式(可以用来实例化 id | name | start_date | end_date 1 A 2015-01-09 2018-03-23 2 B 2012-07-21 2019-01-22 3 C 2013-04-07 null - - - 的所有文件类型)打开QFileDialog.getOpenFileName

我已经知道我可以使用QIcon获得所有受支持的图像格式。

让我感到困惑的是,QImageReader.supportedImageFormats()返回了QImageReader.supportedImageFormats()的列表,但我不确定如何将其简单地转换为QBytesArray的列表。

str

1 个答案:

答案 0 :(得分:1)

您必须使用QByteArray方法将bytes转换为data(),然后使用string将字节转换为decode()。然后,仅将其串联以获得所需的格式。

text_filter = "Images ({})".format(" ".join(["*.{}".format(fo.data().decode()) for fo in supportedFormats]))

fname, _ = qt.QFileDialog.getOpenFileName(
    parent=self,
    caption="Load a profile picture", 
    filter=text_filter
)