def on_bTest_clicked(self): """ Private method to test the selected options. """ if self.rOpenFile.isChecked() or self.rfOpenFile.isChecked(): if not self.cSymlinks.isChecked(): options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) else: options = QFileDialog.Options() options = self.__adjustOptions(options) if self.rOpenFile.isChecked() and self.__pyqtVariant == 4: QFileDialog.getOpenFileName(None, self.eCaption.text(), self.eStartWith.text(), self.eFilters.text(), options) else: QFileDialog.getOpenFileNameAndFilter( None, self.eCaption.text(), self.eStartWith.text(), self.eFilters.text(), self.eInitialFilter.text(), options) elif self.rOpenFiles.isChecked() or self.rfOpenFiles.isChecked(): if not self.cSymlinks.isChecked(): options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) else: options = QFileDialog.Options() options = self.__adjustOptions(options) if self.rOpenFiles.isChecked() and self.__pyqtVariant == 4: QFileDialog.getOpenFileNames(None, self.eCaption.text(), self.eStartWith.text(), self.eFilters.text(), options) else: QFileDialog.getOpenFileNamesAndFilter( None, self.eCaption.text(), self.eStartWith.text(), self.eFilters.text(), self.eInitialFilter.text(), options) elif self.rSaveFile.isChecked() or self.rfSaveFile.isChecked(): if not self.cSymlinks.isChecked(): options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) else: options = QFileDialog.Options() options = self.__adjustOptions(options) if self.rSaveFile.isChecked() and self.__pyqtVariant == 4: QFileDialog.getSaveFileName(None, self.eCaption.text(), self.eStartWith.text(), self.eFilters.text(), options) else: QFileDialog.getSaveFileNameAndFilter( None, self.eCaption.text(), self.eStartWith.text(), self.eFilters.text(), self.eInitialFilter.text(), options) elif self.rDirectory.isChecked(): options = QFileDialog.Options() if not self.cSymlinks.isChecked(): options |= QFileDialog.Options(QFileDialog.DontResolveSymlinks) if self.cDirOnly.isChecked(): options |= QFileDialog.Options(QFileDialog.ShowDirsOnly) else: options |= QFileDialog.Options(QFileDialog.Option(0)) options = self.__adjustOptions(options) QFileDialog.getExistingDirectory(None, self.eCaption.text(), self.eWorkDir.text(), options)
def getSaveFileNameAndFilter(parent=None, caption="", directory="", filter="", initialFilter="", options=QFileDialog.Options()): """ Module function to get the name of a file for saving it and the selected file name filter. @param parent parent widget of the dialog (QWidget) @param caption window title of the dialog (string) @param directory working directory of the dialog (string) @param filter filter string for the dialog (string) @param initialFilter initial filter for the dialog (string) @param options various options for the dialog (QFileDialog.Options) @return name of file to be saved and selected filter (string, string) """ if Globals.isLinuxPlatform(): options |= QFileDialog.DontUseNativeDialog newfilter = __reorderFilter(filter, initialFilter) if PYQT_VERSION_STR >= "5.0.0": return QFileDialog.getSaveFileName(parent, caption, directory, newfilter, initialFilter, options) else: return QFileDialog.getSaveFileNameAndFilter(parent, caption, directory, newfilter, initialFilter, options)
def inquireSaveFilename(self): ''' Prompt the user for the name of the file into which to save the scene. The file format will be determined from the filename extension. ''' formattypes = [ ("png", self.tr("PNG - Portable Networks Graphics (*.png)")), ("jpeg", self. tr("JPEG - Joint Photographic Experts Group (*.jpeg *.jpg *.jpe)") ), ("tiff", self.tr("TIFF - Tagged Image File Format (*.tiff *.tif)")), ("bmp", self.tr("BMP - Windows Bitmap (*.bmp)")), ("ppm", self.tr("PPM - Portable Pixmap (*.ppm)")), ("xpm", self.tr("XPM - X11 Pixmap (*.xpm)")), ("xbm", self.tr("XBM - X11 Bitmap (*.xbm)")), ] if QT_VERSION == 5: # tr returns Python unicode strings in PyQt5/Python3 filters = self.tr(";;").join([t[1] for t in formattypes]) for (fmt, fmtQName) in formattypes: if self.__lastformat == fmt: dfltfilter = fmtQName break else: dfltfilter = formattypes[0][1] (fileName, fileFilter) = QFileDialog.getSaveFileName( self, self.tr("Save the current image as "), self.__lastfilename, filters, dfltfilter) if fileName: for (fmt, fmtQName) in formattypes: if fmtQName == fileFilter: fileFormat = fmt break else: raise RuntimeError("Unexpected file format name '%s'" % fileFilter) else: # tr returns QStrings in PyQt4 filters = formattypes[0][1] for typePair in formattypes[1:]: filters.append(";;") filters.append(typePair[1]) (fileName, fileFilter) = QFileDialog.getSaveFileNameAndFilter( self, self.tr("Save the current image as "), self.__lastfilename, filters) if fileName: for (fmt, fmtQName) in formattypes: if fmtQName.compare(fileFilter) == 0: fileFormat = fmt break else: raise RuntimeError("Unexpected file format name '%s'" % fileFilter) if fileName: self.saveSceneToFile(fileName, fileFormat, None, None) self.__lastfilename = fileName self.__lastformat = fileFormat
def SaveModelDialogSlot(self): type_sbml = 'SBML' filters = {'SBML(*.xml)': type_sbml} filename, filter_ = QFileDialog.getSaveFileNameAndFilter( None, 'Save File', '', ';;'.join(filters)) extension = "" if str(filename).rfind('.') != -1: filename = filename[:str(filename).rfind('.')] if str(filter_).rfind('.') != -1: extension = filter_[str(filter_).rfind('.'):len(filter_) - 1] if filename: filename = filename + extension if filters[str(filter_)] == 'SBML': moose.writeSBML(str(filename), self.plugin.modelRoot)
def save_figure(self, caption="Choose a filename to save to", filename=None, default_filetype=None): filetypes = self.canvas.get_supported_filetypes_grouped() sorted_filetypes = sorted(six.iteritems(filetypes)) # if not default_filetype in self.canvas.get_supported_filetypes(): if not default_filetype: default_filetype = self.canvas.get_default_filetype() if not filename: startpath = os.path.expanduser( matplotlib.rcParams['savefig.directory']) filename = os.path.join(startpath, self.canvas.get_default_filename()) filters = [] selectedFilter = None for name, exts in sorted_filetypes: exts_list = " ".join(['*.%s' % ext for ext in exts]) filter = '%s (%s) ' % (name, exts_list) # filter = '(*.%s) %s' % (exts_list, name) if default_filetype in exts: selectedFilter = filter filters.append(filter) filters = ';;'.join(filters) # for future update to pyqt5, change it to getSaveFileName if use_pyqt5: fname, filter = QFileDialog.getSaveFileName( self.parent(), caption, filename, filters, selectedFilter) else: fname, filter = QFileDialog.getSaveFileNameAndFilter( self.parent(), caption, filename, filters, selectedFilter) if fname: try: self.canvas.figure.savefig(six.text_type(fname), dpi=300, bbox_inches='tight') except Exception as e: QMessageBox.critical(self.parent(), "Error saving band diagram", six.text_type(e), QMessageBox.Ok, QMessageBox.NoButton)
def save_array(self): """""" filename, extension = QFileDialog.getSaveFileNameAndFilter( self, 'Save file', "", "Image PNG File (*.png);; Image BMP File (*.bmp);; JSON File (.json)") if len(filename)>0: filename = os.path.abspath(filename) ext = extension.split("(")[1].replace(")", "")\ .replace("*", "").strip() if not filename.endswith(ext): filename = filename + ext if ext == ".json": self.dot_array.save(filename) elif ext == ".png" or ext == ".bmp": self.image().save(filename)
def getSaveFileNameAndFilter(parent=None, caption="", directory="", filter="", initialFilter="", options=QFileDialog.Options()): """ Module function to get the name of a file for saving it and the selected file name filter. @param parent parent widget of the dialog (QWidget) @param caption window title of the dialog (string) @param directory working directory of the dialog (string) @param filter filter string for the dialog (string) @param initialFilter initial filter for the dialog (string) @param options various options for the dialog (QFileDialog.Options) @return name of file to be saved and selected filter (string, string) """ if Globals.isLinuxPlatform(): options |= QFileDialog.DontUseNativeDialog newfilter = __reorderFilter(filter, initialFilter) if PYQT_VERSION_STR >= "5.0.0": return QFileDialog.getSaveFileName( parent, caption, directory, newfilter, initialFilter, options) else: return QFileDialog.getSaveFileNameAndFilter( parent, caption, directory, newfilter, initialFilter, options)
def on_bTest_clicked(self): """ Private method to test the selected options. """ if self.rOpenFile.isChecked() or self.rfOpenFile.isChecked(): if not self.cSymlinks.isChecked(): options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) else: options = QFileDialog.Options() options = self.__adjustOptions(options) if self.rOpenFile.isChecked() and self.__pyqtVariant == 4: QFileDialog.getOpenFileName( None, self.eCaption.text(), self.eStartWith.text(), self.eFilters.text(), options) else: QFileDialog.getOpenFileNameAndFilter( None, self.eCaption.text(), self.eStartWith.text(), self.eFilters.text(), self.eInitialFilter.text(), options) elif self.rOpenFiles.isChecked() or self.rfOpenFiles.isChecked(): if not self.cSymlinks.isChecked(): options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) else: options = QFileDialog.Options() options = self.__adjustOptions(options) if self.rOpenFiles.isChecked() and self.__pyqtVariant == 4: QFileDialog.getOpenFileNames( None, self.eCaption.text(), self.eStartWith.text(), self.eFilters.text(), options) else: QFileDialog.getOpenFileNamesAndFilter( None, self.eCaption.text(), self.eStartWith.text(), self.eFilters.text(), self.eInitialFilter.text(), options) elif self.rSaveFile.isChecked() or self.rfSaveFile.isChecked(): if not self.cSymlinks.isChecked(): options = QFileDialog.Options(QFileDialog.DontResolveSymlinks) else: options = QFileDialog.Options() options = self.__adjustOptions(options) if self.rSaveFile.isChecked() and self.__pyqtVariant == 4: QFileDialog.getSaveFileName( None, self.eCaption.text(), self.eStartWith.text(), self.eFilters.text(), options) else: QFileDialog.getSaveFileNameAndFilter( None, self.eCaption.text(), self.eStartWith.text(), self.eFilters.text(), self.eInitialFilter.text(), options) elif self.rDirectory.isChecked(): options = QFileDialog.Options() if not self.cSymlinks.isChecked(): options |= QFileDialog.Options(QFileDialog.DontResolveSymlinks) if self.cDirOnly.isChecked(): options |= QFileDialog.Options(QFileDialog.ShowDirsOnly) else: options |= QFileDialog.Options(QFileDialog.Option(0)) options = self.__adjustOptions(options) QFileDialog.getExistingDirectory( None, self.eCaption.text(), self.eWorkDir.text(), options)