def navigate_directory(self): dialog = QFileDialog() dialog.setDirectory(self._root_dir) dialog.setFileMode(QFileDialog.Directory) dialog.setOption(QFileDialog.ShowDirsOnly) dialog.exec() path = dialog.selectedFiles() if path and path[0]: self._root_dir = path[0] self.localPathEdit.setText(self._root_dir) self.update_file_tree()
def action_open_handler(self): p = QFileDialog() p.setViewMode(QFileDialog.List) p.setFileMode(QFileDialog.ExistingFiles) p.setDirectory(config.src_path) p.exec() paths = p.selectedFiles() for pth in paths: i = self.file_already_open(pth) if i: self.mdi.setActiveSubWindow(i.sub_window) else: m = FsmModel.load_file(pth) vm = InstanceVM(m, self, pth)
def openAction(self): # first check save state of the current calculation if self.checkSaveState(): dialog = QFileDialog(self) dialog.setWindowModality(Qt.WindowModal) # check for mac only dialog.setWindowTitle(QApplication.translate("MainWindow", "Open Calculation")) dialog.setDirectory(os.path.expanduser("~")) dialog.setNameFilter(QApplication.translate("MainWindow", "XML files (*.xml);;All Files (*)")) dialog.exec() filename = dialog.selectedFiles() if filename: self.model.readFile(filename.pop())
def get_save_file_name(initial_name: str, wav_only=False, caption="Save signal"): global RECENT_PATH if caption == "Save signal": name_filter = "Complex files (*.complex);;Complex16 files (2 unsigned int8) " \ "(*.complex16u);;Complex16 files (2 signed int8) (*.complex16s);;" \ "Compressed complex files (*.coco);;wav files (*.wav);;all files (*)" if wav_only: name_filter = "wav files (*.wav);;all files (*)" elif caption == "Save fuzz profile": name_filter = "Fuzzfiles (*.fuzz);;All files (*)" elif caption == "Save encoding": name_filter = "" else: name_filter = "Protocols (*.proto);;All files (*)" filename = None dialog = QFileDialog() dialog.setFileMode(QFileDialog.AnyFile) dialog.setNameFilter(name_filter) dialog.setViewMode(QFileDialog.Detail) dialog.setDirectory(RECENT_PATH) dialog.setLabelText(QFileDialog.Accept, "Save") dialog.setWindowTitle(caption) dialog.setAcceptMode(QFileDialog.AcceptSave) dialog.selectFile(initial_name) if dialog.exec(): filename = dialog.selectedFiles()[0] if filename: RECENT_PATH = os.path.split(filename)[0] return filename
def saveAsAction(self): dialog = QFileDialog(self) dialog.setWindowModality(Qt.WindowModal) # check for mac only dialog.setAcceptMode(QFileDialog.AcceptSave) dialog.setWindowTitle(QApplication.translate("MainWindow", "Save Calculation")) dialog.setDirectory(os.path.expanduser("~")) dialog.setNameFilter(QApplication.translate("MainWindow", "XML files (*.xml);;All Files (*)")) dialog.exec() filename = dialog.selectedFiles() if filename: self.model.saveFile(filename.pop()) return True else: return False
def openProjectDialog(self): fileDialog = QFileDialog() fileDialog.setDefaultSuffix("pyr") fileDialog.setFileMode(QFileDialog.ExistingFile) fileDialog.setNameFilters(["Pyree Project Files (*.pyr)", "Any files (*)"]) if fileDialog.exec(): self.openProject(fileDialog.selectedFiles()[0])
def read_cfg(self): dialog = QFileDialog(self, 'Read configuration settings', '.', '*.ini') dialog.setDefaultSuffix('ini') dialog.setAcceptMode(QFileDialog.AcceptOpen) if dialog.exec() == QDialog.Accepted: name = dialog.selectedFiles() settings = QSettings(name[0], QSettings.IniFormat) self.read_cfg_settings(settings)
def action_save_as_handler(self): w = self.mdi.activeSubWindow() if w is None: return p = QFileDialog() p.setViewMode(QFileDialog.List) p.setDirectory(config.src_path) p.exec() paths = p.selectedFiles() if len(paths) == 0: return w.instance.file_path = os.path.abspath(paths[0]) w.instance.update_title() model = w.instance.model model.dump_file(w.instance.file_path) w.instance.set_modified(False)
def write_cfg(self): dialog = QFileDialog(self, 'Write configuration settings', '.', '*.ini') dialog.setDefaultSuffix('ini') dialog.setAcceptMode(QFileDialog.AcceptSave) dialog.setOptions(QFileDialog.DontConfirmOverwrite) if dialog.exec() == QDialog.Accepted: name = dialog.selectedFiles() settings = QSettings(name[0], QSettings.IniFormat) self.write_cfg_settings(settings)
def save(self): if not self.file: dialog = QFileDialog(); #dialog.setFileMode(QFileDialog.AnyFile); dialog.setAcceptMode(QFileDialog.AcceptSave); if (dialog.exec()): self.file = (dialog.selectedFiles())[0]; else: return; self.mainManager.save(self.file);
def saveProjectDialog(self, saveAs = False): if saveAs or self.currentProject.filePath is None: fileDialog = QFileDialog() fileDialog.setDefaultSuffix("pyr") fileDialog.setFileMode(QFileDialog.AnyFile) fileDialog.setNameFilters(["Pyree Project Files (*.pyr)", "Any files (*)"]) if fileDialog.exec(): self.currentProject.saveToFile(fileDialog.selectedFiles()[0]) else: self.currentProject.saveToFile(self.currentProject.filePath)
def choose_file(self): """ Fires up user dialog letting him choose file to be opened. """ dialog = QFileDialog() dialog.setFileMode(QFileDialog.ExistingFile) dialog.setNameFilter(config.FILE_TYPE) if dialog.exec(): file_name = dialog.selectedFiles()[0] self.open_file(file_name)
def pick(self): dlg = QFileDialog(self, self.title, lastDir, self.filters) if self.save: # dlg.setDefaultSuffix(self._extension) dlg.setAcceptMode(QFileDialog.AcceptSave) else: dlg.setAcceptMode(QFileDialog.AcceptOpen) dlg.setFileMode(QFileDialog.ExistingFile) if not dlg.exec(): return self.wtext.setText(dlg.selectedFiles()[0])
def on_pushButton_PathToQtSdk_Select_clicked(self): # Create file dialog fileDialog = QFileDialog() fileDialog.setWindowTitle("Select path to Qt SDK...") fileDialog.setFileMode(QFileDialog.Directory) # Open file dialog wasFileSelected = fileDialog.exec() if wasFileSelected: selectedFolder = self.getNormalizedPath(fileDialog) self.lineEdit_PathToQtSdk.setText(selectedFolder) self.settings.setValue(keyPathToQtSdk, selectedFolder)
def exportAction(self): dialog = QFileDialog(self) dialog.setWindowModality(Qt.WindowModal) # check for mac only dialog.setAcceptMode(QFileDialog.AcceptSave) dialog.setWindowTitle(QApplication.translate("MainWindow", "Export Calculation")) dialog.setDirectory(os.path.expanduser("~")) dialog.setNameFilter(QApplication.translate("MainWindow", "PNG files (*.png);;JPG files (*.jpg);;TIFF files (*.tif)")) if dialog.exec(): filename = dialog.selectedFiles() self.plotWidget.plotWidget.plotWidget.export(filename.pop())
def on_pushButton_PathToApplicationBinary_Select_clicked(self): # Create file dialog fileDialog = QFileDialog() fileDialog.setWindowTitle("Select a Qt application binary...") fileDialog.setFileMode(QFileDialog.ExistingFile) fileDialog.setNameFilter("*.exe") # Open file dialog wasFileSelected = fileDialog.exec() if wasFileSelected: selectedFile = self.getNormalizedPath(fileDialog) self.lineEdit_PathToApplicationBinary.setText(selectedFile) self.settings.setValue(keyPathToApplicationBinary, selectedFile)
def from_folder(self): file_dialog = QFileDialog() file_dialog.setFileMode(QFileDialog.DirectoryOnly) file_dialog.setOption(QFileDialog.DontUseNativeDialog, True) file_view = file_dialog.findChild(QListView, 'listView') if file_view: file_view.setSelectionMode(QAbstractItemView.MultiSelection) f_tree_view = file_dialog.findChild(QTreeView) if f_tree_view: f_tree_view.setSelectionMode(QAbstractItemView.MultiSelection) if file_dialog.exec(): for path in file_dialog.selectedFiles(): self.add_gallery(path, os.path.split(path)[1])
def write_s1p(self): dialog = QFileDialog(self, 'Write s1p file', '.', '*.s1p') dialog.setDefaultSuffix('s1p') dialog.setAcceptMode(QFileDialog.AcceptSave) dialog.setOptions(QFileDialog.DontConfirmOverwrite) if dialog.exec() == QDialog.Accepted: name = dialog.selectedFiles() fh = open(name[0], 'w') gamma = self.gamma() size = self.sizeValue.value() fh.write('# GHz S MA R 50\n') for i in range(0, size): fh.write('0.0%.8d %8.6f %7.2f\n' % (self.xaxis[i], np.absolute(gamma[i]), np.angle(gamma[i], deg = True))) fh.close()
def write_csv(self): dialog = QFileDialog(self, 'Write csv file', '.', '*.csv') dialog.setDefaultSuffix('csv') dialog.setAcceptMode(QFileDialog.AcceptSave) dialog.setOptions(QFileDialog.DontConfirmOverwrite) if dialog.exec() == QDialog.Accepted: name = dialog.selectedFiles() fh = open(name[0], 'w') gamma = self.gamma() size = self.sizeValue.value() fh.write('frequency;open.real;open.imag;short.real;short.imag;load.real;load.imag;dut.real;dut.imag\n') for i in range(0, size): fh.write('0.0%.8d;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f\n' % (self.xaxis[i], self.open.real[i], self.open.imag[i], self.short.real[i], self.short.imag[i], self.load.real[i], self.load.imag[i], self.dut.real[i], self.dut.imag[i])) fh.close()
def write_s2p(self, gain): dialog = QFileDialog(self, 'Write s2p file', '.', '*.s2p') dialog.setDefaultSuffix('s2p') dialog.setAcceptMode(QFileDialog.AcceptSave) dialog.setOptions(QFileDialog.DontConfirmOverwrite) if dialog.exec() == QDialog.Accepted: name = dialog.selectedFiles() fh = open(name[0], 'w') freq = self.dut.freq gamma = self.gamma(freq) fh.write('# GHz S MA R 50\n') for i in range(freq.size): fh.write('0.0%.8d %8.6f %7.2f %8.6f %7.2f 0.000000 0.00 0.000000 0.00\n' % (freq[i] * 1000, np.absolute(gamma[i]), np.angle(gamma[i], deg = True), np.absolute(gain[i]), np.angle(gain[i], deg = True))) fh.close()
def saveTrace(self,checked): #diag = QFileDialog.getSaveFileName(self, "Select destination", "./", "Comma Separated Values (*.csv)"); diag = QFileDialog(self); diag.setAcceptMode(QFileDialog.AcceptSave) #Save file, not open one diag.setNameFilter("Comma Separated Values (*.csv);;Space separated Values (*.csv)"); diag.setDefaultSuffix("csv"); # Make sure selected files end in .csv diag.exec(); try: filename = diag.selectedFiles()[0]; except IndexError: filename = ''; user_filter = diag.selectedNameFilter(); if (user_filter == "Space separated Values (*.csv)"): delimiter = " "; else: delimiter = ","; if (filename != '' and not os.path.isdir(filename)): npzfile = self.last_result; t = npzfile["t"]; cos2 = npzfile["cos2"]; cos2d = npzfile["cos2d"]; extra_header = []; extra_columns = []; if ('Javg' in npzfile.keys()): Javg = npzfile["Javg"]; std = npzfile["std"]; psi_pulse = npzfile["psi"]; psi_final = psi_pulse[-1]; psi_out=numpy.abs(psi_final)**2; percentile_999 = npzfile["percentile_999"]; extra_header = ["<J>","std(J)","J_99.9%","Probability coefficients"]; extra_columns = [Javg,std,percentile_999,psi_out]; utils.save_to_csv(filename,t,cos2,cos2d,extra_header,extra_columns,delimiter);
def slotAddMount(self): fileDialog = QFileDialog(self, Qt.Dialog) fileDialog.setFileMode(QFileDialog.Directory) fileDialog.setOption(QFileDialog.ShowDirsOnly, True) fileDialog.setViewMode(QFileDialog.List) fileDialog.setDirectory(os.environ["HOME"]) if fileDialog.exec(): selected = fileDialog.selectedFiles()[0] if selected in self.newMounts: return row = self.table_mounts.rowCount() self.table_mounts.insertRow(row) self.table_mounts.setItem(row, 0, QTableWidgetItem(selected)) self.table_mounts.setItem(row, 1, QTableWidgetItem("新近添加")) self.table_mounts.setItem(row, 2, QTableWidgetItem("新近添加"))
def on_btn_localUpload_clicked(self): folder = app.settings.get("internal", "lastlocaluploaddir") if not folder: folder = os.path.expanduser("~/Downloads") dlg = QFileDialog(self, "选择本地种子/Metalink文件", folder, "种子/Metalink (*.torrent *.metalink *.meta4)") dlg.setFileMode(QFileDialog.ExistingFile) if dlg.exec(): selectedFile = dlg.selectedFiles()[0] app.settings.set("internal", "lastlocaluploaddir", os.path.dirname(selectedFile)) self.line_url.setText(selectedFile)
def write_csv(self): dialog = QFileDialog(self, 'Write csv file', '.', '*.csv') dialog.setDefaultSuffix('csv') dialog.setAcceptMode(QFileDialog.AcceptSave) dialog.setOptions(QFileDialog.DontConfirmOverwrite) if dialog.exec() == QDialog.Accepted: name = dialog.selectedFiles() fh = open(name[0], 'w') f = self.dut.freq o = self.interp(f, self.open) s = self.interp(f, self.short) l = self.interp(f, self.load) d = self.dut.data fh.write('frequency;open.real;open.imag;short.real;short.imag;load.real;load.imag;dut.real;dut.imag\n') for i in range(f.size): fh.write('0.0%.8d;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f\n' % (f[i] * 1000, o.real[i], o.imag[i], s.real[i], s.imag[i], l.real[i], l.imag[i], d.real[i], d.imag[i])) fh.close()
def slotAddMount(self): fileDialog = QFileDialog(self, Qt.Dialog) fileDialog.setFileMode(QFileDialog.Directory) fileDialog.setOption(QFileDialog.ShowDirsOnly, True) fileDialog.setViewMode(QFileDialog.List) fileDialog.setDirectory(os.environ["HOME"]) if fileDialog.exec(): selected = fileDialog.selectedFiles()[0] if selected in self.newMounts: return row = self.table_mounts.rowCount() self.table_mounts.insertRow(row) self.table_mounts.setItem( row, 0, QTableWidgetItem(app.adapterManager[0].mountsFaker.driveIndexToLetter(row) + "\\TDDOWNLOAD")) self.table_mounts.setItem(row, 1, QTableWidgetItem(selected)) self.table_mounts.setItem(row, 2, QTableWidgetItem("新近添加"))
class ImageSelect(QWidget): def __init__(self, parent, image=None): super().__init__(parent) self.image_url = None self.image = image self.filed = QFileDialog(parent) self.filed.setFileMode(QFileDialog.ExistingFile) vertical_layout = QtWidgets.QGridLayout(self) vertical_layout.setObjectName("image") pixmap = QPixmap(0, 0) if self.image is not None: pixmap.loadFromData(self.image) self.image_container = QtWidgets.QLabel(self) self.image_container.setPixmap(pixmap) vertical_layout.addWidget(self.image_container, 0, 0, 2, 2) load_button = QtWidgets.QPushButton(self) load_button.setText("Load Image") load_button.setObjectName("load_button") load_button.clicked.connect(self.on_load_button_clicked) vertical_layout.addWidget(load_button, 0, 2, 1, 1) clear_button = QtWidgets.QPushButton(self) clear_button.setText("Clear Image") clear_button.setObjectName("clear_button") clear_button.clicked.connect(self.on_clear_button_clicked) vertical_layout.addWidget(clear_button, 1, 2, 1, 1) def get_value(self): return self.image def on_load_button_clicked(self): if self.filed.exec(): with Image(filename=self.filed.selectedFiles()[0]) as image: self.image = image.make_blob() pixmap = QPixmap(0, 0) pixmap.loadFromData(self.image) self.image_container.setPixmap(pixmap) def on_clear_button_clicked(self): self.image = None pixmap = QPixmap(0, 0) self.image_container.setPixmap(pixmap)
def loadTemplate(self): """Load a sct file.""" fd = QFileDialog(None, "Load Scan Template") fd.setLabelText(QFileDialog.Accept, "Import") fd.setDirectory(self.sctpath) fd.setNameFilters(["Scan Template (*.sct)", "All Files (*)"]) fd.setOptions(QFileDialog.DontUseNativeDialog) fd.setViewMode(QFileDialog.List) fd.setFileMode(QFileDialog.ExistingFile) if fd.exec(): fileName = fd.selectedFiles() sctfile = fileName[0] self.title = 'Observation maker for FIFI-LS [' + sctfile + ']' self.setWindowTitle(self.title) # Default settings self.TW.setDefaults() # Load template and update table widget self.TW.update_status('Loading ' + sctfile + "\n") self.TW.sctfile = sctfile self.aorParameters = readSct(sctfile) # self.TW.update_status(errmsg) self.TW.update_gui(self.aorParameters) self.sctpath = os.path.dirname(os.path.abspath(sctfile)) # self.TW.sctdir.setText(sctpath) Initiliaze with path of read file mapfile = os.path.basename(self.TW.mapListPath) self.TW.pathFile = self.sctpath self.TW.mapListPath = os.path.join(self.sctpath, mapfile) mapfile = self.TW.mapListPath print('mapfile ', mapfile) self.TW.update_status("mapfile: " + mapfile + "\n") if len(mapfile) > 0: try: noMapPoints, mapListPath = readMap(mapfile) print('map path ', mapListPath) self.TW.mapListPath = mapListPath self.TW.noMapPoints.setText(str(noMapPoints)) print('map loaded') # self.TW.update_status("Map loaded. \n") except: print('Invalid map file.') # First build print('First build ') self.TW.buildObs()
def write_s2p(self): dialog = QFileDialog(self, 'Write s2p file', '.', '*.s2p') dialog.setDefaultSuffix('s2p') dialog.setAcceptMode(QFileDialog.AcceptSave) dialog.setOptions(QFileDialog.DontConfirmOverwrite) if dialog.exec() == QDialog.Accepted: name = dialog.selectedFiles() fh = open(name[0], 'w') gain = self.gain() gamma = self.gamma() size = self.sizeValue.value() fh.write('# GHz S MA R 50\n') for i in range(0, size): fh.write( '0.0%.8d %8.6f %7.2f %8.6f %7.2f 0.000000 0.00 0.000000 0.00\n' % (self.xaxis[i], np.absolute(gamma[i]), np.angle(gamma[i], deg=True), np.absolute( gain[i]), np.angle(gain[i], deg=True))) fh.close()
def open(self): dialog = QFileDialog(self.scripter.uicontroller.mainWidget) dialog.setNameFilter('Python files (*.py)') if dialog.exec(): try: selectedFile = dialog.selectedFiles()[0] fileExtension = selectedFile.rsplit('.', maxsplit=1)[1] if fileExtension == 'py': document = self.scripter.documentcontroller.openDocument( selectedFile) self.scripter.uicontroller.setDocumentEditor(document) self.scripter.uicontroller.setStatusBar(document.filePath) print("open is run") except: QMessageBox.information(self.scripter.uicontroller.mainWidget, 'Invalid File', 'Open files with .py extension')
def on_toolButtonCMPath_clicked(self): """ Slot documentation goes here. """ fdlg = QFileDialog(self) fdlg.setWindowTitle( _translate("ConfigDialog", "Circuit Macros Location", "File Dialog Title")) fdlg.setDirectory(self.cmPath.text()) fdlg.setFileMode(QFileDialog.Directory) fdlg.setOptions(QFileDialog.ShowDirsOnly | QFileDialog.DontUseNativeDialog | QFileDialog.ReadOnly) fdlg.setViewMode(QFileDialog.Detail) fdlg.setFilter(QDir.Dirs | QDir.Hidden) if fdlg.exec(): newPath = fdlg.selectedFiles() self.cmPath.setText(newPath[0]) fdlg.close()
def slotAddMount(self): fileDialog = QFileDialog(self, Qt.Dialog) fileDialog.setFileMode(QFileDialog.Directory) fileDialog.setOption(QFileDialog.ShowDirsOnly, True) fileDialog.setViewMode(QFileDialog.List) fileDialog.setDirectory(os.environ["HOME"]) if fileDialog.exec(): selected = fileDialog.selectedFiles()[0] if selected in self.newMounts: return row = self.table_mounts.rowCount() self.table_mounts.insertRow(row) self.table_mounts.setItem( row, 0, QTableWidgetItem( app.adapterManager[0].mountsFaker.driveIndexToLetter(row) + "\\TDDOWNLOAD")) self.table_mounts.setItem(row, 1, QTableWidgetItem(selected)) self.table_mounts.setItem(row, 2, QTableWidgetItem("新近添加"))
def save_config(self): filedialog = QFileDialog(self) filedialog.setDefaultSuffix("mptconfig") filedialog.setNameFilter("Mod Packing Tool Files (*.mptconfig);;All files (*.*)") filedialog.setAcceptMode(QFileDialog.AcceptSave) selected = filedialog.exec() if selected: self.config_path = filedialog.selectedFiles()[0] else: return if self.config_path == "": print("No file name selected.") return try: tconfig = {'src_path': self.src_widget.filepath, 'dst_path': self.dst_widget.filepath, 'game': self.game_container.entry.currentText(), 'watcher_enabled': self.watch.isChecked()} config.write_config(self.config_path, tconfig) except IOError: print("Config save failed.") pass
def get_save_file_name(initial_name: str, wav_only=False, caption="Save signal"): global RECENT_PATH if caption == "Save signal": name_filter = "Complex (*.complex);;" \ "Complex16 unsigned (*.complex16u *.cu8);;" \ "Complex16 signed (*.complex16s *.cs8);;" \ "Complex compressed (*.coco);;" \ "WAV (*.wav);;" \ "All Files (*)" if wav_only: name_filter = "WAV Files (*.wav);;All Files (*)" elif caption == "Save fuzz profile": name_filter = "Fuzzing Profile (*.fuzz.xml *.fuzz);;All Files (*)" elif caption == "Save encoding": name_filter = "" elif caption == "Save simulator profile": name_filter = "Simulator (*.sim.xml *.sim);;All Files (*)" elif caption == "Export spectrogram": name_filter = "Frequency Time (*.ft);;Frequency Time Amplitude (*.fta)" else: name_filter = "Protocols (*.proto.xml *.proto);;Binary Protocol (*.bin);;All Files (*)" filename = None dialog = QFileDialog() dialog.setFileMode(QFileDialog.AnyFile) dialog.setNameFilter(name_filter) dialog.setViewMode(QFileDialog.Detail) dialog.setDirectory(RECENT_PATH) dialog.setLabelText(QFileDialog.Accept, "Save") dialog.setWindowTitle(caption) dialog.setAcceptMode(QFileDialog.AcceptSave) dialog.selectFile(initial_name) if dialog.exec(): filename = dialog.selectedFiles()[0] if filename: RECENT_PATH = os.path.split(filename)[0] return filename
def ask_save_file_name(initial_name: str, caption="Save signal", selected_name_filter=None): global RECENT_PATH if caption == "Save signal": name_filter = __get__name_filter_for_signals() elif caption == "Save fuzzing profile": name_filter = FUZZING_FILE_FILTER elif caption == "Save encoding": name_filter = "" elif caption == "Save simulator profile": name_filter = SIMULATOR_FILE_FILTER elif caption == "Export spectrogram": name_filter = "Frequency Time (*.ft);;Frequency Time Amplitude (*.fta)" elif caption == "Save protocol": name_filter = ";;".join( [PROTOCOL_FILE_FILTER, BINARY_PROTOCOL_FILE_FILTER]) elif caption == "Export demodulated": name_filter = WAV_FILE_FILTER else: name_filter = EVERYTHING_FILE_FILTER filename = None dialog = QFileDialog(directory=RECENT_PATH, caption=caption, filter=name_filter) dialog.setFileMode(QFileDialog.AnyFile) dialog.setLabelText(QFileDialog.Accept, "Save") dialog.setAcceptMode(QFileDialog.AcceptSave) if selected_name_filter is not None: dialog.selectNameFilter(selected_name_filter) dialog.selectFile(initial_name) if dialog.exec(): filename = dialog.selectedFiles()[0] if filename: RECENT_PATH = os.path.split(filename)[0] return filename
def tools_makeanimation(self): print("make_animation") if not hasattr(self, 'inputfilename'): QMessageBox.critical(self, "Error", "Load an image first!", QMessageBox.Ok) return numframes, result = QInputDialog.getInt(self, "Make animation", "Number of frames:", 15, min=2, max=1000) if result is not True: return dlg = QFileDialog(self, "Select output directory for frames:") dlg.setFileMode(QFileDialog.Directory) if not dlg.exec(): return outdir = dlg.selectedFiles()[0] print("Outdir", outdir) def tryload(data): pm = QPixmap() success = pm.loadFromData(data) if success: return pm return None for i in range(numframes): framename = os.path.join(outdir, "frame_%04d.png" % (i, )) pm = None while True: pm = tryload( glitch_file(self.inputfilename, self.sliderNumGlitch.value())) if pm is None: continue else: break pm.save(framename, "png") QApplication.processEvents()
def save_nn(self): """Сохранить нейросеть в файл""" file_dialogue = QFileDialog() file_dialogue.setFileMode(QFileDialog.AnyFile) file_dialogue.setAcceptMode(QFileDialog.AcceptSave) if self.actor_critic_rb.isChecked( ) or self.actor_critic_DDPG_rb.isChecked(): name_filters = ["TensorFlow session (*.*)"] else: name_filters = [ "Hierarchical data format (*.hdf)", "All files (*.*)" ] file_dialogue.setNameFilters(name_filters) if file_dialogue.exec(): filename = file_dialogue.selectedFiles()[0] try: self.sim.save_nn(filename) except PermissionError as e: QMessageBox.warning(self, "Error", str(e)) file_dialogue.deleteLater()
def load_nn(self): """Загрузить нейросеть из файла""" file_dialogue = QFileDialog() file_dialogue.setFileMode(QFileDialog.ExistingFile) file_dialogue.setAcceptMode(QFileDialog.AcceptOpen) if self.actor_critic_rb.isChecked( ) or self.actor_critic_DDPG_rb.isChecked(): name_filters = ["TensorFlow session (*.meta)"] else: name_filters = [ "Hierarchical data format (*.hdf)", "All files (*.*)" ] file_dialogue.setNameFilters(name_filters) if file_dialogue.exec(): filename = file_dialogue.selectedFiles()[0] try: self.sim.load_nn(filename) except OSError or FileNotFoundError or FileNotFoundError as e: QMessageBox.warning(self, "Error", str(e)) file_dialogue.deleteLater()
def seek(self): fileName = "" dialog = QFileDialog() dialog.setFileMode(QFileDialog.AnyFile) dialog.setNameFilter("Images (*.png *.gif *.jpg);;All (*)") dialog.setWindowTitle("Load Image") dialog.setOption(QFileDialog.DontUseNativeDialog, True) dialog.setAcceptMode(QFileDialog.AcceptOpen) if dialog.exec(): fileName = dialog.selectedFiles()[0] del dialog if not fileName: return # copy file to database dir name = os.path.join(str(self.win.client.doc_id) + ".png") path = os.path.join(self.win.database, "images", name) shutil.copy(fileName, path) self.image.setImage(QImage(path)) self.clientChanged()
def addFolderTriggered(self): no_native = not self.app.prefs.use_native_dialogs title = tr("Select a folder to add to the scanning list") file_dialog = QFileDialog(self, title, self.lastAddedFolder) file_dialog.setFileMode(QFileDialog.DirectoryOnly) file_dialog.setOption(QFileDialog.DontUseNativeDialog, no_native) if no_native: file_view = file_dialog.findChild(QListView, "listView") if file_view: file_view.setSelectionMode(QAbstractItemView.MultiSelection) f_tree_view = file_dialog.findChild(QTreeView) if f_tree_view: f_tree_view.setSelectionMode(QAbstractItemView.MultiSelection) if not file_dialog.exec(): return paths = file_dialog.selectedFiles() self.lastAddedFolder = paths[-1] [self.app.model.add_directory(path) for path in paths] [self.recentFolders.insertItem(path) for path in paths]
def genCSV(self): fs = QFileDialog() fs.setWindowTitle("-- Tableur de suivi --") fs.setFileMode(QFileDialog.FileMode.ExistingFile) fs.setDirectory( os.path.dirname( os.path.dirname(QgsProject.instance().absolutePath()))) fs.setNameFilter("SCalc (*.ods);; Excel(*.xls);; All Files (*.*)") fs.selectNameFilter("*.ods") ret = fs.exec() if (ret == QFileDialog.DialogCode.Accepted): print(fs.selectedFiles()[0]) self.message("Lecture tableur ...") QGuiApplication.setOverrideCursor(Qt.WaitCursor) c = pe.get_book(file_name=fs.selectedFiles()[0]) s = c.sheet_by_name(self.dlg.defNomOngletMailing.displayText()) s.save_as(os.path.splitext(fs.selectedFiles()[0])[0] + ".csv") self.message("CSV sauve ...") QGuiApplication.restoreOverrideCursor()
def _get_files() -> list: # setup settings dialog = QFileDialog(parent=parent, caption=lang['ADD_NEW']['caption'], filter=lang['ADD_NEW']['filter'], directory=sys.path[0]) dialog.setAcceptMode(QFileDialog.AcceptOpen) dialog.setFileMode(QFileDialog.ExistingFiles) dialog.setWindowIcon(QIcon(ZIP)) # setup labels dialog.setLabelText(QFileDialog.FileName, lang['ADD_NEW']['names']) dialog.setLabelText(QFileDialog.FileType, lang['ADD_NEW']['types']) dialog.setLabelText(QFileDialog.Accept, lang['ADD_NEW']['open']) dialog.setLabelText(QFileDialog.Reject, lang['ADD_NEW']['cancel']) # show dialog.show() if dialog.exec() == QFileDialog.Accepted: return dialog.selectedFiles() else: return []
def on_browseFolders_clicked(self, widget): index = self.usbDevicesChooser.currentIndex() file_dialog = QFileDialog() file_dialog.setFileMode(QFileDialog.DirectoryOnly) file_dialog.setOption(QFileDialog.DontUseNativeDialog, True) file_view = file_dialog.findChild(QListView, 'listView') if file_view: file_view.setSelectionMode(QAbstractItemView.MultiSelection) ftree_view = file_dialog.findChild(QTreeView) if ftree_view: ftree_view.setSelectionMode(QAbstractItemView.MultiSelection) file_dialog.setDirectory(self.usbDevices[index].getPath()) if file_dialog.exec(): paths = file_dialog.selectedFiles() self.pathToFolders.setText(";".join(paths))
def write_csv(self): dialog = QFileDialog(self, 'Write csv file', '.', '*.csv') dialog.setDefaultSuffix('csv') dialog.setAcceptMode(QFileDialog.AcceptSave) dialog.setOptions(QFileDialog.DontConfirmOverwrite) if dialog.exec() == QDialog.Accepted: name = dialog.selectedFiles() fh = open(name[0], 'w') gamma = self.gamma() size = self.sizeValue.value() fh.write( 'frequency;open.real;open.imag;short.real;short.imag;load.real;load.imag;dut.real;dut.imag\n' ) for i in range(0, size): fh.write( '0.0%.8d;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f\n' % (self.xaxis[i], self.open.real[i], self.open.imag[i], self.short.real[i], self.short.imag[i], self.load.real[i], self.load.imag[i], self.dut.real[i], self.dut.imag[i])) fh.close()
def file_save_as(self): """ Saves to some INI file. """ file_dialog = QFileDialog(self) file_dialog.setFileMode(QFileDialog.AnyFile) file_dialog.setWindowTitle("Save As …") file_dialog.setNameFilter("MagnetiCalc INI File (*.ini)") file_dialog.setOptions(QFileDialog.DontUseNativeDialog) if file_dialog.exec(): filenames = file_dialog.selectedFiles() if filenames: filename = filenames[0] _file_name, file_extension = os.path.splitext(filename) if file_extension.lower() != ".ini": filename += ".ini" self.config.set_filename(filename) self.config.save()
def open(self): """Opens an image file and shows it as a new tab in the central QTabsWidget """ fd = QFileDialog(self) fd.setNameFilter("Tiff Images (*.tiff *.tif *.png)") fd.setFileMode(fd.ExistingFile) if self.settings is not None: last_dir = self.settings.get("last_dir", None) if last_dir is not None: fd.setDirectory(last_dir) else: self.settings = {} if fd.exec(): f = fd.selectedFiles()[0] self.settings['last_dir'] = os.path.dirname(f) self.save_preferences() itab = ImageTab(self) itab.message.connect(self.message) self.tabsWidget.addTab(itab, os.path.basename(f)) self.tabsWidget.setCurrentIndex(self.tabsWidget.indexOf(itab)) itab.open(f)
def get_files_(dlgtype='native', path=''): if path is None: path = '' # print(f'get_files processed in {int(QThread.currentThreadId())}') dialog = QFileDialog(None) dialog.setFileMode(QFileDialog.ExistingFiles) dialog.setViewMode(QFileDialog.Detail) if dlgtype == 'qt': # default to native unless qt is explicitly requested dialog.setOption(QFileDialog.DontUseNativeDialog, True) dialog.setNameFilters(['Aperio SVS or CSV (*.svs *.csv)']) if len(path) > 0 and QDir(path).exists(): dialog.setDirectory(path) files = [] absolutepath = False if dialog.exec() == QFileDialog.Accepted: dlg_out = dialog.selectedFiles() files = dlg_out absolutepath = dialog.directory().absolutePath() output = {'files': files, 'absolutePath': absolutepath} return output
def toggle_file_opening(self): def smart_sort(item): """Allow sorting of integer named files like 1.jpg, 10.jpg etc """ try: return int(''.join(os.path.basename(item).split('.')[0:-1])) except (TypeError, ValueError, AttributeError): return item w = QFileDialog(self) w.setNameFilters(('*.cbz', '*.zip')) w.setWindowTitle('Please select files to open') w.setModal(True) w.setFileMode(QFileDialog.ExistingFiles) if w.exec(): files = w.selectedFiles() if files: self.files_list = sorted(files, key=smart_sort) self.open_index(0) self.resize(self.maxw + 20, self.height()) return True return False
def loadImage(): # file picker f_diag = QFileDialog() f_diag.labelText = "Open image" # lets pick supported file types mimeTypes = QImageReader.supportedMimeTypes() for x in range(len(mimeTypes)): mimeTypes[x] = str(mimeTypes[x], 'utf-8') f_diag.setMimeTypeFilters(mimeTypes) f_diag.setFileMode(QFileDialog.ExistingFile) # checks wherever anything was picked if f_diag.exec(): res = loadImageFile(f_diag.selectedFiles()[0]) if res: sb_txt.setText("current image: " + QFileInfo(f_diag.selectedFiles()[0]).fileName()) imageLabel.setPixmap(QPixmap.fromImage(res)) imageLabel.resize(res.width(), res.height())
def browse_for_file(self): """Opens a file browser dialog for selecting a file.""" dialog = QFileDialog() dialog.setFileMode(QFileDialog.AnyFile) folder = self.settings.get_last_opened_directory() if not folder: folder = join(os.getcwd(), "res", "data") dialog.setDirectory(folder) if dialog.exec(): filepath = dialog.selectedFiles()[0] directory, filename = os.path.split(filepath) self.settings.set_last_opened_directory(directory) self.set_file(filepath) self.lbl_drag_drop.show_selected_file(self.file) if self.file: self.disable_recent_files()
def setOutputDirectory(self): dialog = QFileDialog(self, "Select destination folder for output images.") dialog.setFileMode(QFileDialog.Directory) dialog.setDirectory(self.outputDir) dialog.setOption(QFileDialog.ShowDirsOnly, True) # [KLUDGE] alert: This one can't use the system dialog on Mac OS because for # some reason the "New Folder" button will crash the app. So on Mac, use the # non-native dialog instead for now. # Re-visit this in the future to try to remove it... if self.platform == "darwin": dialog.setOption(QFileDialog.DontUseNativeDialog, True) if dialog.exec(): dirname = win_safe_path(dialog.selectedFiles()[0]) self.config["output_path"] = dirname self.outputDir = dirname saveConfigToFile(self.config) self.setStatusBar( "Output Folder: {}".format(abbreviate_path(self.outputDir)) ) else: print("Set output folder failed.")
def load_project(self, fname=None): if type(fname) is not str: dialog = QFileDialog() dialog.setWindowTitle('Load Project ...') dialog.setFileMode(QFileDialog.AnyFile) dialog.setOption(QFileDialog.DontUseNativeDialog, True) dialog.setAcceptMode(QFileDialog.AcceptOpen) dialog.setNameFilter('*.pyecog') if dialog.exec(): fname = dialog.selectedFiles()[0] if type(fname) is str: print(fname) self.main_model.project.load_from_json(fname) self.tree_element.set_rootnode_from_project( self.main_model.project) init_time = min( self.main_model.project.current_animal.eeg_init_time) plot_range = np.array([init_time, init_time + 3600]) print('trying to plot ', plot_range) self.paired_graphics_view.set_scenes_plot_channel_data(plot_range) self.main_model.set_time_position(init_time) self.main_model.set_window_pos([init_time, init_time])
def write_csv(self): dialog = QFileDialog(self, 'Write csv file', '.', '*.csv') dialog.setDefaultSuffix('csv') dialog.setAcceptMode(QFileDialog.AcceptSave) dialog.setOptions(QFileDialog.DontConfirmOverwrite) if dialog.exec() == QDialog.Accepted: name = dialog.selectedFiles() fh = open(name[0], 'w') f = self.dut.freq o = self.interp(f, self.open) s = self.interp(f, self.short) l = self.interp(f, self.load) d = self.dut.data fh.write( 'frequency;open.real;open.imag;short.real;short.imag;load.real;load.imag;dut.real;dut.imag\n' ) for i in range(f.size): fh.write( '0.0%.8d;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f;%12.9f\n' % (f[i] * 1000, o.real[i], o.imag[i], s.real[i], s.imag[i], l.real[i], l.imag[i], d.real[i], d.imag[i])) fh.close()
class MenuUI(QMenuBar): addDirectory = pyqtSignal(list) def __init__(self, parent): super().__init__() self.parent = parent self.file_menu = QMenu("&File") self.edit_menu = QMenu() self.help_menu = QMenu() self._init_menus() def _init_menus(self): self._file_menu() def _file_menu(self): self.add_library = QAction("&Add Library...", self) self.exit_player = QAction("E&xit", self) self.file_menu.addAction(self.add_library) self.file_menu.addAction(self.exit_player) self._connect_widgets() self.addMenu(self.file_menu) def _connect_widgets(self): self.add_library.triggered.connect(self._add_library) self.exit_player.triggered.connect(self.parent.close) def _add_library(self): self.dialog = QFileDialog() self.dialog.setFileMode(QFileDialog.DirectoryOnly) self.dialog.setOption(QFileDialog.DontUseNativeDialog, True) for view in self.dialog.findChildren((QListView, QTreeView)): if isinstance(view.model(), QFileSystemModel): view.setSelectionMode(QAbstractItemView.MultiSelection) if self.dialog.exec(): dirs = self.dialog.selectedFiles() self.addDirectory.emit(dirs)
def showDialog(self): # returns path to the single file selected in dialog try: fileDialog = QFileDialog(self) fileDialog.setNameFilter("*.edf") fileDialog.setDirectory("\home") if fileDialog.exec( ): # alternative is QWidget::show(), which doesn't block app flow (user can interact with fileName parent) file_path = fileDialog.selectedFiles( ) # right now only one file can be selected print(file_path) #return(file_path) #header, signal = read_edf(file_path[0]) global data # i cant reference to connect(slot) when assigning variable.. temporary workaround now data = ImportedData(file_path[0]).data #^ this should at some point look like this: data = ImportedData(file_path) and data should be referenced with the object methods get_data() and get_info(), temporary workaround for now self.viewPlotMethod(data) #self.data_loaded.emit() #np.set_printoptions(threshold=np.nan) #for keys,values in data.items(): # if keys == "EEG A1" or keys == "EEG A2": # self.viewPlotMethod(values[1]) except: traceback.print_exc()
def ab_clicked(self): file_dialog = QFileDialog() file_dialog.setFileMode(QFileDialog.DirectoryOnly) file_dialog.setDirectory(self.mainwindow.options.get_default_last_folder_opened()) file_dialog.setOption(QFileDialog.DontUseNativeDialog, True) file_view = file_dialog.findChild(QListView, 'listView') # to make it possible to select multiple directories: if file_view: file_view.setSelectionMode(QAbstractItemView.MultiSelection) f_tree_view = file_dialog.findChild(QTreeView) if f_tree_view: f_tree_view.setSelectionMode(QAbstractItemView.MultiSelection) if file_dialog.exec(): folders = file_dialog.selectedFiles() if len(folders) != 0: for folder in folders: parent_folder = os.path.dirname(r"{}".format(folder)) self.mainwindow.options.save_user_defaults(music_folder=folder, last_folder_opened=parent_folder) self.folder_list.addItem(folder) self.folder_list.sortItems()
def open_folder(self): """ Open a folder with the user's project files. """ dialog = QFileDialog( self.parent, 'Select your project folder', user_settings().get(Key.last_folder_opened, Default.last_folder_opened), "Assembly (*.asm);;All files (*)") dialog.setFileMode(QFileDialog.DirectoryOnly) if dialog.exec() == QDialog.Accepted: # Check a directory really was chosen as this is reliant on the system dialog if not dialog.selectedFiles(): QErrorMessage().showMessage( "Please select only a folder to open.") return chosen_directory = dialog.selectedFiles()[0] if not os.path.isdir(chosen_directory): QErrorMessage().showMessage( "Please select only a folder to open.") return signals().folder_opened_signal.emit(chosen_directory)
def get_save_file_name(initial_name: str, wav_only=False, caption="Save signal"): global RECENT_PATH if caption == "Save signal": name_filter = "Complex (*.complex);;" \ "Complex16 unsigned (*.complex16u *.cu8);;" \ "Complex16 signed (*.complex16s *.cs8);;" \ "Complex compressed (*.coco);;" \ "WAV (*.wav);;" \ "All Files (*)" if wav_only: name_filter = "WAV Files (*.wav);;All Files (*)" elif caption == "Save fuzz profile": name_filter = "Fuzzing Profile (*.fuzz.xml *.fuzz);;All Files (*)" elif caption == "Save encoding": name_filter = "" elif caption == "Save simulator profile": name_filter = "Simulator (*.sim.xml *.sim);;All Files (*)" elif caption == "Export spectrogram": name_filter = "Frequency Time (*.ft);;Frequency Time Amplitude (*.fta)" else: name_filter = "Protocols (*.proto.xml *.proto);;Binary Protocol (*.bin);;All Files (*)" filename = None dialog = QFileDialog(directory=RECENT_PATH, caption=caption, filter=name_filter) dialog.setFileMode(QFileDialog.AnyFile) dialog.setViewMode(QFileDialog.Detail) dialog.setLabelText(QFileDialog.Accept, "Save") dialog.setAcceptMode(QFileDialog.AcceptSave) dialog.selectFile(initial_name) if dialog.exec(): filename = dialog.selectedFiles()[0] if filename: RECENT_PATH = os.path.split(filename)[0] return filename
def saveRotatedFits(self, name_orig): """ Save the downloaded FITS image """ filename, file_extension = os.path.splitext(name_orig) #fileroot = os.path.basename(filename) #print('file root is ', fileroot) print('Saving ', filename + '_NE.fits') # Dialog to save file fd = QFileDialog() fd.setLabelText(QFileDialog.Accept, "Save as") fd.setNameFilters(["Fits Files (*.fits)", "All Files (*)"]) fd.setOptions(QFileDialog.DontUseNativeDialog) fd.setViewMode(QFileDialog.List) fd.selectFile(filename + '_NE.fits') if (fd.exec()): fileName = fd.selectedFiles() outfile = fileName[0] # Check the filename, file_extension = os.path.splitext(outfile) # basename = os.path.basename(filename) # Primary header image = self.data wcs = self.wcs header = wcs.to_header() header.remove('WCSAXES') header['INSTRUME'] = (self.source, 'Instrument') hdu = fits.PrimaryHDU(image) hdu.header.extend(header) hdul = fits.HDUList([hdu]) hdul.writeto(outfile, overwrite=True) # clobber true allows rewriting hdul.close()