Я хотел бы открыть QFileDialog.getOpenFileName
со всеми поддерживаемыми форматами изображений (все типы файлов, которые я мог бы использовать для создания QIcon
)
Я уже знаю, что могу получить все поддерживаемые форматы изображений сQImageReader.supportedImageFormats()
.
Что меня смущает, так это то, что QImageReader.supportedImageFormats()
возвращает список QBytesArray
, и я не уверен, как просто преобразовать это в список str
.
class ProfileImageButton(qt.QToolButton):
def __init__(self, parent=None):
super().__init__(parent)
self.setIconSize(qt.QSize(100, 100))
self.clicked.connect(self._onClick)
self._icon_path = None
def _onClick(self, checked):
supportedFormats = qt.QImageReader.supportedImageFormats()
print([str(fo) for fo in supportedFormats])
# this prints: ["b'bmp'", "b'cur'", "b'gif'", "b'icns'", "b'ico'", "b'jpeg'",
fname, filter_ = qt.QFileDialog.getOpenFileName(
parent=self,
caption="Load a profile picture",)
# filter=???????????) # <--- TODO
if fname:
self.setIcon(qt.QIcon(fname))
self.setIconSize(qt.QSize(100, 100))
self._icon_path = fname
def iconPath(self):
return self._icon_path