def on_file_dialog(self, dialog_type, directory, allow_multiple, save_filename, file_filter): if dialog_type == FOLDER_DIALOG: self._file_name = QFileDialog.getExistingDirectory( self, self.localization['linux.openFolder'], options=QFileDialog.ShowDirsOnly) elif dialog_type == OPEN_DIALOG: if allow_multiple: self._file_name = QFileDialog.getOpenFileNames( self, self.localization['linux.openFiles'], directory, file_filter) else: self._file_name = QFileDialog.getOpenFileName( self, self.localization['linux.openFile'], directory, file_filter) elif dialog_type == SAVE_DIALOG: if directory: save_filename = os.path.join(str(directory), str(save_filename)) self._file_name = QFileDialog.getSaveFileName( self, self.localization['global.saveFile'], save_filename) self._file_name_semaphore.release()
def selectPath(self): """Pops up the 'select a file/directory' dialog""" # todo: This probably needs some reworking to work properly with different scenarios... (file + dir) self._editing = True current_directory = self.getPath() # if not os.path.exists(currentDirectory): # currentDirectory = "~" if self._model.pathMustBeAFile(): current_directory = QFileDialog.getOpenFileName( self, "Select a file path", current_directory) else: current_directory = QFileDialog.getExistingDirectory( self, "Select a directory", current_directory) if not current_directory == "": if not self._model.pathMustBeAbsolute(): cwd = os.getcwd() match = re.match(cwd + "/(.*)", current_directory) if match: current_directory = match.group(1) self._path_line.setText(current_directory) self._model.setPath(self.getPath()) self._editing = False
def load_registration_directory(self): self.status_label.setText("Loading...") options = QFileDialog.Options() options |= QFileDialog.DontUseNativeDialog directory = QFileDialog.getExistingDirectory( self, "Select registration directory", options=options, ) # deal with existing dialog if directory is not "": self.registration_directory = Path(directory) self.initialise_registration_paths() self.load_cellfinder_project_button.setVisible(False) self.load_registration_project_button.setVisible(False) self.load_raw_data_directory_button.setVisible(True) self.load_raw_data_single_button.setVisible(True) self.image_scales = self.get_registration_scaling() if self.image_scales is not None: self.load_registration_button.setVisible(True) self.load_downsampled_data_button.setVisible(True) else: print("Config files and logs could not be parsed to detect " "the data scaling") self.status_label.setText("Ready")
def choose_work_directory(self): dialog = QFileDialog(self, directory=self.work_directory.text()) directory: str = dialog.getExistingDirectory() if not directory or len( directory) == 0 or not os.path.exists(directory): return self.work_directory.setText(directory)
def pick_directory(parent, title="Select Directory", path=Path("~")): path = QFileDialog.getExistingDirectory(parent, title, str(path.resolve()), QFileDialog.ShowDirsOnly) if path: return Path(path).resolve() return None
def get_brainreg_directory(self, standard_space): """ Shows file dialog to choose output directory and sets global directory info """ if standard_space: self.plugin = "brainreg_standard" self.standard_space = True else: self.plugin = "brainreg" self.standard_space = False self.status_label.setText("Loading...") options = QFileDialog.Options() options |= QFileDialog.DontUseNativeDialog brainreg_directory = QFileDialog.getExistingDirectory( self, "Select brainreg directory", options=options, ) if not brainreg_directory: return if self.directory != brainreg_directory: status = self.remove_layers() if not status: return # Something prevented deletion self.directory = Path(brainreg_directory) else: print(f"{str(brainreg_directory)} already loaded.") return # Otherwise, proceed loading brainreg dir self.load_brainreg_directory()
def configuration(self): # bring file dialog to locate where the file will be saved base_folder = Path(self.parent.working_dir) directory = str(base_folder.parent) _export_folder = QFileDialog.getExistingDirectory( self.parent, directory=directory, caption="Select Output Folder", options=QFileDialog.ShowDirsOnly) if _export_folder: data, metadata = self.get_data_metadata_from_selection_tab() # collect initial selection size (x0, y0, width, height) o_get = Get(parent=self.parent) [x0, y0, x1, y1, width, height] = o_get.selection_roi_dimension() name_of_ascii_file = ExportHandler.makeup_name_of_profile_ascii_file( base_name=str(base_folder.name), export_folder=_export_folder, x0=x0, y0=y0, width=width, height=height) make_ascii_file(metadata=metadata, data=data, output_file_name=name_of_ascii_file, dim='1d') self.parent.ui.statusbar.showMessage( "{} has been created!".format(name_of_ascii_file), 10000) # 10s self.parent.ui.statusbar.setStyleSheet("color: green")
def slot_getAndSetPath(self): new_path = QFileDialog.getExistingDirectory(self, self.tr("Set Path"), self.ui.le_folder.text(), QFileDialog.ShowDirsOnly) if new_path: self.ui.le_folder.setText(new_path)
def output_dir_button_clicked(self): _output_folder = QFileDialog.getExistingDirectory(caption="Select Output Folder ...", directory=self.parent.output_folder, options=QFileDialog.ShowDirsOnly) if _output_folder: self.ui.output_dir_label.setText(str(_output_folder)) self.parent.output_folder = str(_output_folder)
def cache_dir_button_clicked(self): _cache_folder = QFileDialog.getExistingDirectory(caption="Select Cache Folder ...", directory=self.parent.cache_folder, options=QFileDialog.ShowDirsOnly) if _cache_folder: self.ui.cache_dir_label.setText(str(_cache_folder)) self.parent.cache_folder = str(_cache_folder)
def _click_dirButton(self): directory = QFileDialog.getExistingDirectory( self, "Choose directory for saving new file", "", QFileDialog.DontUseNativeDialog) if directory: self.dirEdit.setText(directory) self.directory = str(directory)
def cache_dir_button_clicked(self): _cache_folder = QFileDialog.getExistingDirectory( caption="Select Cache Folder ...", directory=self.parent.cache_folder, options=QFileDialog.ShowDirsOnly) if _cache_folder: self.ui.cache_dir_label.setText(str(_cache_folder)) self.parent.cache_folder = str(_cache_folder)
def __set_dir(self) -> None: """Choose path and it will be set as environment variable if accepted.""" path = self.path_edit.text() if not isdir(path): path = self.path_edit.placeholderText() path = QFileDialog.getExistingDirectory(self, "Choose a directory", path) if path: self.path_edit.setText(path)
def output_dir_button_clicked(self): _output_folder = QFileDialog.getExistingDirectory( caption="Select Output Folder ...", directory=self.parent.output_folder, options=QFileDialog.ShowDirsOnly) if _output_folder: self.ui.output_dir_label.setText(str(_output_folder)) self.parent.output_folder = str(_output_folder)
def get_brainreg_directory(self): options = QFileDialog.Options() options |= QFileDialog.DontUseNativeDialog self.brainreg_directory = QFileDialog.getExistingDirectory( self, "Select brainreg directory", options=options, )
def select_file(self): name = QFileDialog.getExistingDirectory( self, self.tr("Select File"), os.path.dirname(self.get_value()), # 起始路径 ) if name != '': self.ctrl.setText(name)
def _open_folder(self): """Add a folder of files from the menubar.""" folder = QFileDialog.getExistingDirectory( parent=self, caption='Select folder...', directory=self._last_visited_dir, # home dir by default ) if folder is not None: self._add_files([folder])
def choose_directory_dialog(parent=None, prompt="Select directory"): options = QFileDialog.Options() options |= QFileDialog.DontUseNativeDialog directory = QFileDialog.getExistingDirectory( parent, prompt, options=options, ) return directory
def _open_folder_dialog(self): """Add a folder of files from the menubar.""" folder = QFileDialog.getExistingDirectory( parent=self, caption='Select folder...', directory=self._last_visited_dir, # home dir by default ) if folder not in {'', None}: self.viewer.open([folder])
def dir_browse_dialog(self, title: str = 'Select Directory') -> str: r"""Pop up a directory dialog box. @param title: string to use as dialog's title @returns absolute path to directory """ dirname = QFileDialog.getExistingDirectory(self, caption=title) if isinstance(dirname, tuple): dirname = dirname[0] return dirname
def master_browse_button_clicked(self): _master_folder = QFileDialog.getExistingDirectory( caption="Select Output Folder ...", directory=self.parent.output_folder, options=QFileDialog.ShowDirsOnly) if _master_folder: self.ui.master_output_directory_label.setText(str(_master_folder)) self.master_folder = _master_folder self.check_run_calibration_status()
def _savedir_browse(self): save_dir = QFileDialog.getExistingDirectory(self, "Output Directory - Choose a directory", os.path.expanduser('~'), QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks) if not save_dir: return if isinstance(save_dir, tuple): save_dir = save_dir[0] self._content.savedir_edit.setText(save_dir)
def get_directory_name_for_saving(self): """ Pops up a directory selection dialogue :return : The path to the directory """ # Note that the native dialog does not always show the files # in the directory on Linux, but using the non-native dialog # is not very pleasant on Windows or Mac directory = QFileDialog.getExistingDirectory(caption='Select folder for exported plots') return directory
def _savedir_browse(self): save_dir = QFileDialog.getExistingDirectory( self, "Output Directory - Choose a directory", os.path.expanduser('~'), QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks) if not save_dir: return if isinstance(save_dir, tuple): save_dir = save_dir[0] self._content.savedir_edit.setText(save_dir)
def get_directory_name_for_saving(self): """ Pops up a directory selection dialogue :return : The path to the directory """ # Note that the native dialog does not always show the files # in the directory on Linux, but using the non-native dialog # is not very pleasant on Windows or Mac directory = QFileDialog.getExistingDirectory(caption='Select folder for exported plots') return directory
def get_output_directory(self): if self.output_directory is None: options = QFileDialog.Options() options |= QFileDialog.DontUseNativeDialog self.output_directory = QFileDialog.getExistingDirectory( self, "Select output directory", options=options, ) self.output_directory = Path(self.output_directory)
def local_output_dir_clicked(self, entry=""): _local_folder = QFileDialog.getExistingDirectory( caption="Select Output Folder ...", directory=self.master_folder, options=QFileDialog.ShowDirsOnly) if _local_folder: _master_list_ui = self.master_list_ui[entry] _local_label = _master_list_ui.output_dir_value _local_label.setText(str(_local_folder)) self.check_run_calibration_status()
def export_bragg_peak_profile(self): working_dir = str(Path(self.parent.working_dir).parent) _export_folder = QFileDialog.getExistingDirectory(self.parent, directory=working_dir, caption="Select Output Folder") QtGui.QGuiApplication.processEvents() # to close QFileDialog if _export_folder: o_gui = GuiUtility(parent=self.parent) list_row_selected = o_gui.get_rows_of_table_selected(table_ui=self.parent.ui.bragg_edge_tableWidget) for row_selected in list_row_selected: # make up output file name name_of_row = o_gui.get_table_str_item(table_ui=self.parent.ui.bragg_edge_tableWidget, row=row_selected, column=0) [x0, y0, width, height] = name_of_row.split("; ") name_of_row_formatted = "x0{}_y0{}_width{}_height{}".format(x0,y0, width, height) file_name = "kropff_bragg_peak_profile_{}.txt".format(name_of_row_formatted) full_file_name = str(Path(_export_folder) / Path(file_name)) o_fit = KropffFittingJobHandler(parent=self.parent) o_fit.prepare(kropff_tooldbox='bragg_peak') x_axis = o_fit.xaxis_to_fit y_axis = o_fit.list_yaxis_to_fit[row_selected] a0 = self.parent.fitting_input_dictionary['rois'][row_selected]['fitting']['kropff']['high']['a0'] b0 = self.parent.fitting_input_dictionary['rois'][row_selected]['fitting']['kropff']['high']['b0'] ahkl = self.parent.fitting_input_dictionary['rois'][row_selected]['fitting']['kropff']['low']['ahkl'] bhkl = self.parent.fitting_input_dictionary['rois'][row_selected]['fitting']['kropff']['low']['bhkl'] metadata = ["# Bragg peak fitting of row {}".format(row_selected+1)] metadata.append("# x0: {}".format(x0)) metadata.append("# y0: {}".format(y0)) metadata.append("# width: {}".format(width)) metadata.append("# height: {}".format(height)) metadata.append("# a0: {}".format(a0)) metadata.append("# b0: {}".format(b0)) metadata.append("# ahkl: {}".format(ahkl)) metadata.append("# bhkl: {}".format(bhkl)) metadata.append("#") metadata.append("# lambda (Angstroms), average transmission") make_ascii_file_from_2dim_array(metadata=metadata, col1=x_axis, col2=y_axis, output_file_name=full_file_name) message = "Exported {} file(s) in {}".format(len(list_row_selected), _export_folder) self.parent.ui.statusbar.showMessage(message, 15000) # 15s self.parent.ui.statusbar.setStyleSheet("color: green")
def file_open_click(self): """callback for file-open menu""" temp_path = self._last_path or Path("~").expanduser() new_path = QFileDialog.getExistingDirectory(self, "Select folder...", str(temp_path)) if not new_path: return self._last_path = Path(new_path) model = ImageModel(self._last_path) self.thumbnail_view.setModel(model) self.statusBar().showMessage(f"Loaded {model.max_count} images")
def pb_set_wd_clicked(self): dir_current = self.le_wd.text() dir = QFileDialog.getExistingDirectory( self, "Select Working Directory", dir_current, QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks, ) if dir: self.gpc.set_current_working_directory(dir) self.le_wd.setText(dir)
def _output_dir_browse(self): output_dir = QFileDialog.getExistingDirectory(self, "Output Directory - Choose a directory", os.path.expanduser('~'), QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks) if not output_dir: return if isinstance(output_dir, tuple): output_dir = output_dir[0] self._summary.output_dir_edit.setText(output_dir) self._settings.emit_key_value("OUTPUT_DIR", output_dir)
def dir_browse_dialog(self, default_dir=''): """ Pop up a directory dialog box. """ dirname = QFileDialog.getExistingDirectory( self, "Select Directory", default_dir, QFileDialog.DontUseNativeDialog) if isinstance(dirname, tuple): dirname = dirname[0] return dirname
def set_output_directory(self): self.status_label.setText("Loading...") options = QFileDialog.Options() options |= QFileDialog.DontUseNativeDialog self.directory = QFileDialog.getExistingDirectory( self, "Select output directory", options=options, ) if self.directory != "": self.directory = Path(self.directory)
def _browse_directory(self): direc = QFileDialog.getExistingDirectory(self, "Open Directory", self._settings.data_path) if not direc: return if isinstance(direc, tuple): direc = direc[0] # Store the location of the loaded file self._settings.data_path = str(direc) self._content.directory_edit.setText(direc) self._update_content()
def target_autonom_clicked(self): _autonom_folder = QFileDialog.getExistingDirectory(caption="Select Output autoNOM Folder ...", directory=self.parent.current_folder, options=QFileDialog.ShowDirsOnly) if not _autonom_folder: return if isinstance(_autonom_folder, tuple): _autonom_folder = _autonom_folder[0] _autonom_folder = os.path.basename(_autonom_folder) self.ui.target_autonom_value.setText(str(_autonom_folder)) self.check_status_transfer_button()
def _output_dir_browse(self): output_dir = QFileDialog.getExistingDirectory(self, "Output Directory - Choose a directory", os.path.expanduser('~'), QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks) if not output_dir: return if isinstance(output_dir, tuple): output_dir = output_dir[0] self._summary.output_dir_edit.setText(output_dir) self._settings.emit_key_value("OUTPUT_DIR", output_dir)
def move_to_folder(self): _new_folder = QFileDialog.getExistingDirectory(parent=self.main_window, caption="Select working directory", directory=self.current_folder) if not _new_folder: self.user_canceled = True else: if isinstance(_new_folder, tuple): _new_folder = _new_folder[0] os.chdir(_new_folder) self.main_window.current_folder = _new_folder self.main_window.setWindowTitle(_new_folder)
def dir_browse_dialog(self): """ Pop up a directory dialog box. @param data_type: string used to filter the files @param title: string to use as title @param multi: multiselection is enabled if True """ dirname = QFileDialog.getExistingDirectory(self, "Select Directory") if isinstance(dirname, tuple): dirname = dirname[0] return dirname
def browse_folder(self): _current_folder = self.current_folder _caption = "Select Output Folder" _folder = QFileDialog.getExistingDirectory(parent=self.parent, caption=_caption, directory=_current_folder) if not _folder: return if isinstance(_folder, tuple): _folder = _folder[0] self.parent.ui.mantid_output_directory_value.setText(str(_folder) + self._output_ext)
def source_ipts_clicked(self): _ipts_folder = QFileDialog.getExistingDirectory(caption="Select Input IPTS Folder ...", directory=self.ipts_folder, options=QFileDialog.ShowDirsOnly) if not _ipts_folder: return if isinstance(_ipts_folder, tuple): _ipts_folder = _ipts_folder[0] self.ipts_folder = _ipts_folder _ipts_folder = os.path.basename(_ipts_folder) _ipts_number = _ipts_folder.split('-')[1] self.ui.source_ipts_value.setText(str(_ipts_number)) self.check_status_transfer_button()
def select_working_folder(self): _current_folder = self.main_window.current_folder _new_folder = QFileDialog.getExistingDirectory(parent=self.main_window, caption="Select working directory", directory=_current_folder) if not _new_folder: return if isinstance(_new_folder, tuple): _new_folder = _new_folder[0] self.main_window.current_folder = _new_folder # o_gui = Step1GuiHandler(parent=self.main_window) # o_gui.set_main_window_title() self.set_main_window_title() # move to new folder specifiy os.chdir(_new_folder) o_auto_populate = AutoPopulateWidgets(main_window=self.main_window) o_auto_populate.run()
def do_browse_local_cache_dir(self): """ Browse local cache directory :return: """ local_cache_dir = QFileDialog.getExistingDirectory(self, 'Get Local Cache Directory', self._homeSrcDir) if isinstance(local_cache_dir, tuple): local_cache_dir = local_cache_dir[0] # Set local directory to control status, error_message = self._myControl.set_local_data_dir(local_cache_dir) if status is False: self.pop_one_button_dialog(error_message) return # Synchronize to local data/spice directory and local cache directory # if str(self.ui.lineEdit_localSpiceDir.text()) != '': # prev_dir = str(self.ui.lineEdit_localSrcDir.text()) # self.pop_one_button_dialog('Local data directory was set up as %s' % # prev_dir) self.ui.lineEdit_localSrcDir.setText(local_cache_dir)
def getexistingdirectory(parent=None, caption='', basedir='', options=QFileDialog.ShowDirsOnly): """Wrapper around QtGui.QFileDialog.getExistingDirectory static method Compatible with PyQt >=v4.4 (API #1 and #2) and PySide >=v1.0""" # Calling QFileDialog static method if sys.platform == "win32": # On Windows platforms: redirect standard outputs _temp1, _temp2 = sys.stdout, sys.stderr sys.stdout, sys.stderr = None, None try: result = QFileDialog.getExistingDirectory(parent, caption, basedir, options) finally: if sys.platform == "win32": # On Windows platforms: restore standard outputs sys.stdout, sys.stderr = _temp1, _temp2 if not is_text_string(result): # PyQt API #1 result = to_text_string(result) return result
def do_browse_output_dir(self): """ browse the output directory :return: """ # get scan number or numbers try: exp_number = self.get_exp_number() except RuntimeError as run_err: gui_util.show_message(self, '[ERROR] {0}'.format(run_err)) return default_dir = os.path.join('/HFIR/HB3A/Exp{0}/shared/'.format(exp_number)) # get output directory output_dir = QFileDialog.getExistingDirectory(self, 'Outputs for pre-processed scans', default_dir) if not output_dir: return if isinstance(output_dir, tuple): output_dir = output_dir[0] self.ui.lineEdit_outputDir.setText(output_dir)