def get_save_filename(self, parent, filter_, default_name=None): dialog = QFileDialog(parent, directory=self._get_default_directory(), filter=filter_) if default_name: dialog.selectFile(default_name) dialog.setModal(True) dialog.setAcceptMode(QFileDialog.AcceptSave) if dialog.exec_() != QFileDialog.Accepted or not dialog.selectedFiles(): return None return dialog.selectedFiles()[0]