Re-implementation of QFileDialog.getSaveFileName that allows to set defaultSuffix

This commit is contained in:
2023-01-26 20:24:18 +01:00
parent e89d9cecda
commit ee5d80541a

View File

@ -1,6 +1,8 @@
from PyQt5.QtWidgets import QFileDialog from PyQt5.QtWidgets import QFileDialog
DEFAULT_SUFFIX = "h5"
FILETYPE_FILTERS = [ FILETYPE_FILTERS = [
"HDF5 files (*.h5)", "HDF5 files (*.h5)",
"All files (*)" "All files (*)"
@ -10,7 +12,7 @@ FILETYPE_FILTERS = ";;".join(FILETYPE_FILTERS)
def save_h5_file_dialog(parent): def save_h5_file_dialog(parent):
fn, _chosen_filter = QFileDialog.getSaveFileName(parent, filter=FILETYPE_FILTERS) fn, _chosen_filter = getSaveFileName(parent, filter=FILETYPE_FILTERS, defaultSuffix=DEFAULT_SUFFIX)
return fn return fn
@ -19,4 +21,50 @@ def open_h5_files_dialog(parent):
return fns return fns
def getSaveFileName(
parent=None,
caption="",
dir="",
filter="",
selectedFilter=None,
defaultSuffix=None,
options=None
):
"""
Re-implementation of QFileDialog.getSaveFileName that allows to set defaultSuffix
"""
dlg = QFileDialog(
parent=parent,
caption=caption,
directory=dir,
filter=filter
)
if selectedFilter:
dlg.selectNameFilter(selectedFilter)
if defaultSuffix:
dlg.setDefaultSuffix(defaultSuffix)
if options:
dlg.setOptions(options)
dlg.setAcceptMode(QFileDialog.AcceptSave);
dlg.setFileMode(QFileDialog.AnyFile);
res = dlg.exec()
if res == QFileDialog.Rejected:
return "", ""
fns = dlg.selectedFiles()
assert len(fns) == 1
fn = fns[0]
selectedFilter = dlg.selectedNameFilter()
return fn, selectedFilter