def selectImageDataFile(self): file_path = os.path.join(self.experiment_file_directory, self.experiment_file_name + '.hdf5') image_file_path, _ = QFileDialog.getOpenFileName( self, "Select image file") print('User selected image file at {}'.format(image_file_path)) self.image_file_name = os.path.split(image_file_path)[-1] self.data_directory = os.path.split(image_file_path)[:-1][0] h5io.attachImageFileName(file_path, self.series_number, self.image_file_name) print('Attached image_file_name {} to series {}'.format( self.image_file_name, self.series_number)) print('Data directory is {}'.format(self.data_directory)) self.currentImageFileNameLabel.setText(self.image_file_name) # show roi image if self.series_number is not None: if self.data_directory is not None: # user has selected a raw data directory self.plugin.updateImageSeries( data_directory=self.data_directory, image_file_name=self.image_file_name, series_number=self.series_number, channel=self.current_channel) self.roi_image = self.plugin.mean_brain self.zSlider.setValue(0) self.zSlider.setMaximum(self.roi_image.shape[2] - 1) self.redrawRoiTraces() else: print('Select a data directory before drawing rois')
def load_configuration_window(self) -> None: self.force_bypass_notification = True self.configuration_path_input.setText( QFileDialog.getOpenFileName( self, "Open Configuration File", str(pathlib.Path(__file__).parent.resolve()), "CDS Configuration (*.json);;All Files (*)")[0])
def file_open(self): self.iw.scene.clear() self.image_name = QFileDialog.getOpenFileName(self, 'Open File') self.iw.pixmap = QtGui.QPixmap(self.image_name[0]) self.iw.pixmap_fit = self.iw.pixmap.scaled( self.iw.pixmap.width(), self.iw.pixmap.height(), QtCore.Qt.AspectRatioMode.KeepAspectRatio, transformMode=QtCore.Qt.TransformationMode.SmoothTransformation) self.iw.scene.addPixmap(self.iw.pixmap_fit) #add image self.iw.setScene(self.iw.scene) #Adjust window size automatically? self.iw.fitInView(self.iw.scene.sceneRect(), QtCore.Qt.AspectRatioMode.KeepAspectRatio) self.iw.scene.update() self.statusbar.showMessage('Select a measurement to make from the toolbar') self.lengthButton.setEnabled(True) self.areaButton.setEnabled(True) self.angleButton.setEnabled(True) self.exportButton.setEnabled(True) self.undoButton.setEnabled(True) self.bezier.setEnabled(True) self.bezier.setChecked(True) self.widthsButton.setEnabled(False) self.angleNames = [] self.areaNames = [] self.lengthNames = [] #self.iw.measurements = [[]] self.iw.widths = [] self.iw.lengths = [[]] self.iw.L = posData( np.empty(shape=(0, 0)), np.empty(shape=(0, 0))) #lengths self.iw.A = posData( np.empty(shape=(0, 0)), np.empty(shape=(0, 0))) #area self.iw.W = posData( np.empty(shape=(0, 0)), np.empty(shape=(0, 0))) #widths self.iw.T = angleData(np.empty(shape=(0, 0))) #angles self.iw.angleValues = np.empty((0,0)) self.iw.areaValues = np.empty((0,0)) self.iw._lastpos = None self.iw._thispos = None self.iw.measuring_length = False self.iw.measuring_area = False self.iw.measuring_widths = False self.iw.measuring_angle = False self.iw._zoom = 0 self.iw.factor = 1.0 self.iw.d = {} #dictionary for line items self.iw.k = 0 #initialize counter so lines turn yellow self.iw.m = None self.iw.scene.realline = None self.iw.scene.testline = None self.iw.scene.ellipseItem = None self.iw.scene.area_ellipseItem = None self.iw.scene.polyItem = None self.iw.image_name = None
def load_matching_phase_from_config_task(self): logger.info("Execute task 'load_matching_phase_from_config_task'.") path = str(QFileDialog.getOpenFileName(self, "Choose a configuration .json file!")[0]) if path != "": self.disable_global_input() # noinspection PyUnresolvedReferences self.load_matching_phase_from_config.emit(path)
def load_document_base_from_bson_task(self): logger.info("Execute task 'load_document_base_from_bson_task'.") path, ok = QFileDialog.getOpenFileName(self, "Choose a document collection .bson file!") if ok: self.disable_global_input() # noinspection PyUnresolvedReferences self.load_document_base_from_bson.emit(str(path))
def __onLoadMazeButtonPressed(self) -> None: fileDialog = QFileDialog(self, "Open a maze file…") filesFilter = "Maze files (*.maze, *.db)" fileDialog.setFileMode(QFileDialog.FileMode.ExistingFile) filePath: str = "" filePath = fileDialog.getOpenFileName(filter=filesFilter)[0] self.__onMazeFilePathChosen(filePath)
def _load(self): '''A la hora de realizar la carga del fichero controlo si se produce un mensaje de error y lo muestro''' try: file = QFileDialog.getOpenFileName( self, 'Buscar Archivo', QDir.homePath(), "All Files (*);;Music Mp3 Files (*.mp3)") if file: print("Archivo seleccionado: ", file) except: print("Error en la carga de datos.")
def selectDataFile(self): filePath, _ = QFileDialog.getOpenFileName( self, "Open experiment (hdf5) file") self.experiment_file_name = os.path.split(filePath)[1].split('.')[0] self.experiment_file_directory = os.path.split(filePath)[0] if self.experiment_file_name != '': self.currentExperimentLabel.setText(self.experiment_file_name) self.initializeDataAnalysis() self.populateGroups() self.updateExistingRoiSetList()
def set_assister_path(): """设置辅助登录程序路径""" assister_path = QFileDialog.getOpenFileName(self, "选择辅助登录程序路径", self._cwd, "EXE Files (*.exe)") if not assister_path[0]: return None assister_path = os.path.normpath(assister_path[0]) # windows backslash if assister_path == self._cookie_assister: return None self.assister_ed.setText(assister_path) self._cookie_assister = assister_path
def showDialog(self): home_dir = str(Path.home()) fname = QFileDialog.getOpenFileName(self, 'Open file', home_dir) if fname[0]: f = open(fname[0], 'r') with f: data = f.read() self.textEdit.setText(data)
def openFile(self): options = QFileDialog.Options.DontUseNativeDialog file_name, _ = QFileDialog.getOpenFileName(self, "QFileDialog.getOpenFileName()", "", "Python Files (*.py);;All Files (*)", options=options) if file_name: self.setWindowTitle(file_name.split("/")[-1]) with open(file_name) as inputFile: file_data = inputFile.read() self.textEdit.clear() self.textEdit.setPlainText(file_data)
def file_open(self): path, _ = QFileDialog.getOpenFileName( self, "Open file", "", "Text documents (*.txt);;All files (*.*)", ) try: with open(path, "rU") as f: text = f.read() except Exception as e: self.dialog_critical(str(e)) else: self.path = path self.editor.setText(text) self.update_title()
def openVideoFile(self): # self.mediaPlayer.setMedia(QMediaContent()) if self.sender() == self.openVideoAction: self.videoFile, _ = QFileDialog.getOpenFileName( self, "Open video", QDir.homePath()) # if self.videoFile != '': # self.setWindowTitle('{} - {}'.format(os.path.basename(self.videoFile), # os.path.basename(self.projectFile))) if self.videoFile != '': self.setWindowTitle('{} - {}'.format( os.path.basename(self.videoFile), os.path.basename(self.projectFile))) self.saveProjectAction.setEnabled(True) self.maskGenAction.setEnabled(True) # self.loadGraphAction.setEnabled(True) # self.saveGraphAction.setEnabled(True) # self.drawPointAction.setEnabled(True) # self.drawLineAction.setEnabled(True) # self.drawZoneAction.setEnabled(True) creation_datetime, width, height = getVideoMetadata(self.videoFile) self.videoStartDatetime = self.videoCurrentDatetime = creation_datetime self.dateLabel.setText(creation_datetime.strftime('%a, %b %d, %Y')) self.gView.setSceneRect(0, 0, width, height) self.videoItem = QGraphicsVideoItem() self.videoItem.setAspectRatioMode( Qt.AspectRatioMode.KeepAspectRatio) self.gScene.addItem(self.videoItem) self.videoItem.mouseMoveEvent = self.gView.mouseMoveEvent self.videoItem.setSize(QSizeF(width, height)) self.mediaPlayer.setVideoOutput(self.videoItem) self.mediaPlayer.setSource(QUrl.fromLocalFile(self.videoFile)) self.gView.labelSize = width / 50 self.playButton.setEnabled(True) # self.gView.setViewport(QOpenGLWidget()) self.mediaPlayer.pause()
def openImage(self): """Load a new image into the """ image_file, _ = QFileDialog.getOpenFileName( self, "Open Image", "", "PNG Files (*.png);;JPG Files (*.jpeg *.jpg );;Bitmap Files (*.bmp);;\ GIF Files (*.gif)") if image_file: # Reset values when opening an image self.parent.zoom_factor = 1 #self.parent.scroll_area.setVisible(True) self.parent.print_act.setEnabled(True) self.parent.updateActions() # Reset all sliders self.parent.brightness_slider.setValue(0) # Get image format image_format = self.image.format() self.image = QImage(image_file) self.original_image = self.image.copy() #pixmap = QPixmap(image_file) self.setPixmap(QPixmap().fromImage(self.image)) #image_size = self.image_label.sizeHint() self.resize(self.pixmap().size()) #self.scroll_area.setMinimumSize(image_size) #self.image_label.setPixmap(pixmap.scaled(self.image_label.size(), # Qt.KeepAspectRatio, Qt.SmoothTransformation)) elif image_file == "": # User selected Cancel pass else: QMessageBox.information(self, "Error", "Unable to open image.", QMessageBox.Ok)
def get_file(self): fname, _ = QFileDialog.getOpenFileName(self, "Open file", 'C:\\', 'Image files (*.jpg &.gif)') self.le.setPixmap(QPixmap(fname))
def openProject(self): self.projectFile, _ = QFileDialog.getOpenFileName( self, "Open project file", QDir.homePath(), "Project (*.prj)") if self.projectFile == '': return self.saveProjectAction.setEnabled(True) self.maskGenAction.setEnabled(True) # self.loadGraphAction.setEnabled(True) # self.saveGraphAction.setEnabled(True) # self.drawPointAction.setEnabled(True) # self.drawLineAction.setEnabled(True) # self.drawZoneAction.setEnabled(True) tree = ET.parse(self.projectFile) root = tree.getroot() gItems = [] for elem in root: subEelTexts = {} for subelem in elem: subEelTexts[subelem.tag] = subelem.text gItems.append([elem.tag, subEelTexts]) for key in gItems: if key[0] == 'database': item = key[1] if item['fileName'] is not None: self.obsTb.dbFilename = item['fileName'] self.obsTb.opendbFile() elif key[0] == 'video': item = key[1] if item['fileName'] is not None: self.videoFile = item['fileName'] self.openVideoFile() self.mediaPlayer.setPosition(int(item['sliderValue'])) if item['fileName'] is not None: self.loadGraphics() elif key[0] == 'trajectory': item = key[1] if item['metadata'] != None: self.obsTb.mdbFileLedit.setText(item['metadata']) self.obsTb.openMdbFile() self.obsTb.siteNameCombobx.setCurrentIndex( int(item['site'])) self.obsTb.camViewCombobx.setCurrentIndex( int(item['cam_view'])) self.obsTb.trjDbCombobx.setCurrentIndex( int(item['traj_db'])) elif key[0] == 'window': item = key[1] x, y = item['mainWin_pos'].split(',') w, h = item['mainWin_size'].split(',') self.setGeometry(int(x), int(y), int(w), int(h)) if item['obsTbx_open'] == 'True': self.obsTb.show() x, y = item['obsTbx_pos'].split(',') w, h = item['obsTbx_size'].split(',') self.obsTb.setGeometry(int(x), int(y), int(w), int(h))
def file_upload(self) -> str: _file = QFileDialog.getOpenFileName(self, 'Open File', '.') _name, _ = _file return _name
def onTreeItemClicked(self, item, column): file_path = os.path.join(self.experiment_file_directory, self.experiment_file_name + '.hdf5') group_path = h5io.getPathFromTreeItem( self.groupTree.selectedItems()[0]) self.clearRois() self.series_number = None if 'series_' in group_path: self.series_number = int( group_path.split('series_')[-1].split('/')[0]) if self.plugin.dataIsAttached(file_path, self.series_number): self.plugin.updateImagingDataObject( self.experiment_file_directory, self.experiment_file_name, self.series_number) # look for image_file_name or ask user to select it if self.data_directory is not None: image_file_name = h5io.readImageFileName( file_path, self.series_number) if image_file_name is None or image_file_name == '': image_file_path, _ = QFileDialog.getOpenFileName( self, "Select image file") print('User selected image file at {}'.format( image_file_path)) image_file_name = os.path.split(image_file_path)[-1] self.data_directory = os.path.split( image_file_path)[:-1][0] h5io.attachImageFileName(file_path, self.series_number, image_file_name) print('Attached image_file_name {} to series {}'.format( image_file_name, self.series_number)) print('Data directory is {}'.format(self.data_directory)) self.image_file_name = image_file_name self.currentImageFileNameLabel.setText(self.image_file_name) else: # clicked part of the tree upstream of any series self.series_number = None if item.parent() is not None: if item.parent().text( column) == 'rois': # selected existing roi group roi_set_name = item.text(column) # print('Selected roi set {} from series {}'.format(roi_set_name, self.series_number)) self.le_roiSetName.setText(roi_set_name) roi_set_path = h5io.getPathFromTreeItem( self.groupTree.selectedItems()[0]) self.loadRois(roi_set_path) self.redrawRoiTraces() if group_path != '': attr_dict = h5io.getAttributesFromGroup(file_path, group_path) editable_values = True # user can edit metadata self.populate_attrs(attr_dict=attr_dict, editable_values=editable_values) # show roi image if self.series_number is not None: # Clicked on node of the tree associated with a single series if self.data_directory is not None: # user has selected a raw data directory if self.plugin.dataIsAttached(file_path, self.series_number): self.plugin.updateImageSeries( data_directory=self.data_directory, image_file_name=self.image_file_name, series_number=self.series_number, channel=self.current_channel) self.roi_image = self.plugin.mean_brain self.zSlider.setValue(0) self.zSlider.setMaximum(self.roi_image.shape[2] - 1) self.redrawRoiTraces() else: print('Attach metadata to file before drawing rois') else: print('Select a data directory before drawing rois') # # # TEST # # # memory_usage = psutil.Process(os.getpid()).memory_info().rss * 10**-9 print('Current Memory Usage: {:.2f}GB'.format(memory_usage)) sys.stdout.flush()
def _choose_input_file(self): fname = QFileDialog.getOpenFileName(self, 'Open file', '~', 'Audio Files (*.mp3 *.wav *.ogg)') self.inputFileName.setText(fname[0]) self._settings.setValue('last_audio_file', fname[0])
def get_file_to_check(self): file_name, _ = QFileDialog.getOpenFileName(self, 'Datei auswählen') self.labelFilePath.setText(file_name)
def importData(self) -> None: # thanks to Aldo Hoeben / fieldOfView for this part of the code file_name = "" if VERSION_QT5: file_name = QFileDialog.getOpenFileName( parent = None, caption = catalog.i18nc("@title:window", "Open File"), directory = self._preferences.getValue("import_export_tools/dialog_path"), filter = "CSV files (*.csv)", options = self._dialog_options )[0] else: dialog = QFileDialog() dialog.setWindowTitle(catalog.i18nc("@title:window", "Open File")) dialog.setDirectory(self._preferences.getValue("import_export_tools/dialog_path")) dialog.setNameFilters(["CSV files (*.csv)"]) dialog.setAcceptMode(QFileDialog.AcceptMode.AcceptOpen) dialog.setFileMode(QFileDialog.FileMode.ExistingFile) if dialog.exec(): file_name = dialog.selectedFiles()[0] if not file_name: Logger.log("d", "No file to import from selected") return self._preferences.setValue("import_export_tools/dialog_path", os.path.dirname(file_name)) # ----- machine_manager = CuraApplication.getInstance().getMachineManager() stack = CuraApplication.getInstance().getGlobalContainerStack() global_stack = machine_manager.activeMachine #Get extruder count extruder_count=stack.getProperty("machine_extruder_count", "value") #extruders = list(global_stack.extruders.values()) extruder_stack = CuraApplication.getInstance().getExtruderManager().getActiveExtruderStacks() imported_count = 0 CPro = "" try: with open(file_name, 'r', newline='') as csv_file: C_dialect = csv.Sniffer().sniff(csv_file.read(1024)) # Reset to begining file position csv_file.seek(0, 0) Logger.log("d", "Csv Import %s : Delimiter = %s Quotechar = %s", file_name, C_dialect.delimiter, C_dialect.quotechar) # csv.QUOTE_MINIMAL or csv.QUOTE_NONNUMERIC ? # csv_reader = csv.reader(csv_file, delimiter=';', quotechar='"', quoting=csv.QUOTE_MINIMAL) csv_reader = csv.reader(csv_file, dialect=C_dialect) line_number = -1 for row in csv_reader: line_number += 1 if line_number == 0: if len(row) < 4: continue else: # Logger.log("d", "Import Data = %s | %s | %s | %s | %s",row[0], row[1], row[2], row[3], row[4]) try: #(section, extrud, kkey, ktype, kvalue) = row[0:4] section=row[0] extrud=int(row[1]) extrud -= 1 kkey=row[2] ktype=row[3] kvalue=row[4] #Logger.log("d", "Current Data = %s | %d | %s | %s | %s", section,extrud, kkey, ktype, kvalue) if extrud<extruder_count: try: container=extruder_stack[extrud] try: prop_value = container.getProperty(kkey, "value") if prop_value != None : settable_per_extruder= container.getProperty(kkey, "settable_per_extruder") # Logger.log("d", "%s settable_per_extruder : %s", kkey, str(settable_per_extruder)) if ktype == "str" or ktype == "enum": if prop_value != kvalue : if extrud == 0 : stack.setProperty(kkey,"value",kvalue) if settable_per_extruder == True : container.setProperty(kkey,"value",kvalue) Logger.log("d", "prop_value changed: %s = %s / %s", kkey ,kvalue, prop_value) else: Logger.log("d", "%s not settable_per_extruder", kkey) imported_count += 1 elif ktype == "bool" : if kvalue == "True" or kvalue == "true" : C_bool=True else: C_bool=False if prop_value != C_bool : if extrud == 0 : stack.setProperty(kkey,"value",C_bool) if settable_per_extruder == True : container.setProperty(kkey,"value",C_bool) Logger.log("d", "prop_value changed: %s = %s / %s", kkey ,C_bool, prop_value) else: Logger.log("d", "%s not settable_per_extruder", kkey) imported_count += 1 elif ktype == "int" : if prop_value != int(kvalue) : if extrud == 0 : stack.setProperty(kkey,"value",int(kvalue)) if settable_per_extruder == True : container.setProperty(kkey,"value",int(kvalue)) Logger.log("d", "prop_value changed: %s = %s / %s", kkey ,kvalue, prop_value) else: Logger.log("d", "%s not settable_per_extruder", kkey) imported_count += 1 elif ktype == "float" : TransVal=round(float(kvalue),4) if round(prop_value,4) != TransVal : if extrud == 0 : stack.setProperty(kkey,"value",TransVal) if settable_per_extruder == True : container.setProperty(kkey,"value",TransVal) Logger.log("d", "prop_value changed: %s = %s / %s", kkey ,TransVal, prop_value) else: Logger.log("d", "%s not settable_per_extruder", kkey) imported_count += 1 else : Logger.log("d", "Value type Else = %d | %s | %s | %s",extrud, kkey, ktype, kvalue) else: # Logger.log("d", "Value None = %d | %s | %s | %s",extrud, kkey, ktype, kvalue) if kkey=="Profile" : CPro=kvalue except: Logger.log("e", "Error kkey: %s" % kkey) continue except: Logger.log("e", "Error Extruder: %s" % row) continue except: Logger.log("e", "Row does not have enough data: %s" % row) continue except: Logger.logException("e", "Could not import settings from the selected file") return Message().hide() Message("Imported profil %d changed keys from %s" % (imported_count, CPro) , title = "Import Export CSV Profiles Tools").show()