def MatDialog(self): mat_dialog = QFileDialog(self) mat_dialog = QFileDialog.getOpenFileName(filter="Images (*.png *.jpg)", selectedFilter="Images (*.png *.jpg)") if mat_dialog[0] != "": self.GenerateMat(mat_dialog[0])
def saveAs(self, f): saveAs = QFileDialog() saveAs.setDefaultSuffix('.json') self.timer.stop() fileName, _ = saveAs.getSaveFileName(parent=self.window, filter="JSON (*.json)", caption="Save as json file.") self.timer.start(1) if fileName: self.saveDefaultPath = fileName self.save(f)
def _open_file_name_dialog(self): options = QFileDialog.Options() options |= QFileDialog.DontUseNativeDialog file_name, _ = QFileDialog.getOpenFileName( self, "QFileDialog.getOpenFileName()", "", "All Files (*);;Python Files (*.py)", options=options) if file_name: print(file_name)
def openFileNamesDialog(self): options = QFileDialog.Options() options |= QFileDialog.DontUseNativeDialog files, _ = QFileDialog.getOpenFileNames( self, "QFileDialog.getOpenFileNames()", "", "All Files (*);;Python Files (*.py)", options=options) if files: print(files)
def saveFileDialog(self): options = QFileDialog.Options() options |= QFileDialog.DontUseNativeDialog fileName, _ = QFileDialog.getSaveFileName( self, "QFileDialog.getSaveFileName()", "", "All Files (*);;Text Files (*.txt)", options=options) if fileName: print(fileName)
def setDirectory(self): """ Choose the directory. """ file_dialog = QFileDialog(self) file_dialog.setFileMode(QFileDialog.Directory) self.directory = file_dialog.getExistingDirectory(self, "Open Directory", "", QFileDialog.ShowDirsOnly) if self.directory: self.dir_line_edit.setText(self.directory) # Set the max value of progress bar equal to max number of files in the directory. num_of_files = len([name for name in os.listdir(self.directory)]) self.progress_bar.setRange(0, num_of_files)
def importTeamFunction(self): file_dialog = QFileDialog(self) file_dialog = QFileDialog.getOpenFileName( filter="Team Files (*.json *.zip)", selectedFilter="Team Files (*.json *.zip)") if file_dialog[0] != "": if is_zipfile(file_dialog[0]): with ZipFile(file_dialog[0]) as zip_import: list_of_files = zip_import.namelist() for fimp in list_of_files: if fimp.startswith('logos'): zip_import.extract(fimp, path=THISDIR+'\\images\\') imported_teams = zip_import.read('teams.json') imported_teams = imported_teams.decode('utf-8') else: imported_teams = open(file_dialog[0], "r", encoding="utf-8").read() json_teams = json.loads(imported_teams) self.teams = json_teams["teams"] self.players = json_teams["players"] new_teams = open(THISDIR + "\\config\\teams.json", "w+", encoding="utf-8") new_teams.write(json.dumps(json_teams, indent=4)) new_teams.close() old_config = open(THISDIR + "\\config\\config.json", "r", encoding="utf-8").read() old_config = json.loads(old_config) old_config["total_teams"] = len(json_teams["teams"]) self.config = old_config new_config = open(THISDIR + "\\config\\config.json", "w+", encoding="utf-8") new_config.write(json.dumps(self.config, indent=4)) new_config.close() self.UpdatePlayersList() self.image_east.setPixmap(QPixmap("images/logos/team1.png")\ .scaled(100,100)) self.cloth_east.setModel(self.players_combobox.model()) self.image_south.setPixmap(QPixmap("images/logos/team1.png")\ .scaled(100,100)) self.cloth_south.setModel(self.players_combobox.model()) self.image_west.setPixmap(QPixmap("images/logos/team1.png")\ .scaled(100,100)) self.cloth_west.setModel(self.players_combobox.model()) self.image_north.setPixmap(QPixmap("images/logos/team1.png")\ .scaled(100,100)) self.cloth_north.setModel(self.players_combobox.model()) self.statusBar().showMessage("Teams imported successfully.") self.teamcreation_wid.close()
def choose_db(self): options = QFileDialog.Options() directory = temp.reader() self.filepath,_ = QFileDialog.getOpenFileName(self,"Choose a database to open", directory, "PassLost Files (*.pl)", options=options) if self.filepath: file = os.path.basename(self.filepath).split('.')[0] self.ui.choosefile_btn.setText(file+'.db') self.ui.massterpw_entry.setFocus()
def get_filename(self, save=True): self.backup_name = None if save: filename, filter = QFileDialog.getSaveFileName(None, self.tr("Save backup to:"), ".", self.tr("Archives (*.tgz)")) if filename: if filter == self.tr("Archives (*.tgz)") and filename[-4:] != '.tgz': filename = filename + '.tgz' else: filename, _filter = QFileDialog.getOpenFileName(None, self.tr("Select file with backup"), ".", self.tr("Archives (*.tgz)")) if filename: self.backup_name = filename
def ImportTeamImage(self): image_dialog = QFileDialog(self) image_dialog = QFileDialog.getOpenFileName(filter="Images (*.png)", selectedFilter="Images (*.png)") if image_dialog[0] != "": new_team_logo = Image.open(image_dialog[0]).convert("RGBA") if new_team_logo.size != (250, 250): new_team_logo.resize((250, 250)) new_team_logo.save(THISDIR+"\\images\\logos\\team%s.png"\ % self.num_id.text()) QMessageBox.information(self, "Team Image", "Team image added.")
def openFile(self, file_path): if os.path.exists(file_path): path = QFileDialog.getOpenFileName(self, "Open File Dialog", file_path, "XML files(*.xml)") else: path = QFileDialog.getOpenFileName(self, "Open File Dialog", "/", "XML files(*.xml)") print(path) self.document = IOXML.parseXML(str(path[0])) self.target_platform = ProcessTag.getRootElementAttributeValue( self.document, 'platform') # self.CVE = ProcessTag.getRootElementAttributeValue(self.document, 'CVE') self.url = ProcessTag.getRootElementAttributeValue( self.document, 'url')
def browseOutput(self): dlg = QFileDialog() dlg.setFileMode(QFileDialog.Directory) if self.txt_output_path and Path(self.txt_output_path.text()).exists(): dlg.setDirectory(self.txt_output_path.text()) if dlg.exec_(): self.txt_output_path.setText(dlg.selectedFiles()[0])
def vmf_browse_function(self): dialog = QFileDialog(self) dialog.setFileMode(QFileDialog.AnyFile) dialog.setNameFilter("Valve Map File (*.vmf)") dialog.setViewMode(QFileDialog.Detail) if dialog.exec_(): self.vmf_fileNames = dialog.selectedFiles() self.vmf_fileNames = "".join(str(x) for x in self.vmf_fileNames) global config config.set("SETTINGS", "VMFFilePath", self.vmf_fileNames) with open("config.ini", 'w') as configfile: config.write(configfile) print("You picked", self.vmf_fileNames) self.ui.vmf_lineEdit.setText(self.vmf_fileNames) self.vmf_picked = 1 self.compile_enable_function()
def move_copy_dialog(self, copy): """dialog for copy or move a file Args: copy (boolean): True to copy, False to move """ if copy: libelle = "Move to" else: libelle = "Copy to" if not self.index == -1: directory = QFileDialog.getExistingDirectory( self, libelle, self.images[self.index], QFileDialog.ShowDirsOnly | QFileDialog.DontUseNativeDialog) if directory: file = os.path.join(directory, os.path.basename(self.images[self.index])) if not os.path.isfile(file): self.move_copy_file(self.images[self.index], file, copy) else: dialog = ImageDialog(self.images[self.index], file) result = dialog.exec_() if result == QDialog.Accepted: self.move_copy_file(self.images[self.index], file, copy) elif result == 3: # renamme self.move_copy_file( self.images[self.index], os.path.join( directory, os.path.basename( dialog.edit_file_name.text())), copy)
def update_data(self): QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) meta_data = get_metadata(self.url_name) if os.path.exists(self.db_name): os.remove(self.db_name) conn, cursor = open_db(self.db_name) setup_school_db(cursor) process_data(self.url_name, meta_data, cursor) close_db(conn) QApplication.setOverrideCursor(QCursor(Qt.ArrowCursor)) file_name = QFileDialog.getOpenFileName( self, "Please select an .xlsx file to import from")[0] print(file_name, " was the file selected.") conn, cursor = open_db(self.db_name) QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) read_excel_data(file_name, cursor) close_db(conn) QApplication.setOverrideCursor(QCursor(Qt.ArrowCursor)) self.statusBar().showMessage( f"Update success from: {file_name} on {datetime.now()}") return file_name
def load(self, action): statement_loader = self.sources[action.data()] statement_file, active_filter = QFileDialog.getOpenFileName( None, self.tr("Select statement file to import"), ".", statement_loader['filter']) if not statement_file: return try: module = importlib.import_module( f"jal.data_import.{statement_loader['module']}") except ModuleNotFoundError: logging.error( self.tr("Statement loader module not found: ") + statement_loader['module']) return class_instance = getattr(module, statement_loader['loader_class']) statement = class_instance() try: statement.load(statement_file) statement.validate_format() statement.match_db_ids(verbal=False) totals = statement.import_into_db() except Statement_ImportError as e: logging.error(self.tr("Import failed: ") + str(e)) self.load_failed.emit() return self.load_completed.emit(statement.period()[1], totals)
def load_input_directory(self) -> None: """ Open a popup to select the directory where is located source images. """ in_dir = QFileDialog.getExistingDirectory(self) if len(in_dir) == 0: return self.input_directory = in_dir self.clear_image_entries() self.clear_preview_image() # self.ui.labelInDir.setText(f"Loaded: {self.input_directory}") src_layout = self.source_layout() first = True for entry in sorted(os.scandir(self.input_directory), key=lambda x: x.name): if not Tat.is_image(entry.path): continue qim = load_image(entry.path) ime = CheckableImageEntry(src_layout.parent(), qim, entry.name, entry.path) ime.mouse_pressed.connect(self.image_entry_click_handler) self.add_source_image_entry(ime) if first: self.set_preview_image(qim, ime) first = False if len(self.output_directory) != 0: self.ui.buttonGenerate.setEnabled(True)
def button_source_clicked(self): """ Callback for button_source """ source_path, _ = QFileDialog.getOpenFileName( self, "Open Video", "", "Video Files (*.mkv *.avi *.mov *.mp4)") self.ui.line_source.setText(source_path)
def slot_edit_load_folder(self): dir = QFileDialog.getExistingDirectory( self, 'Folder in which the save states are stored by mGBA', self.ui.lineEditLoadFolder.text()) print(dir) if dir is not None: self.ui.lineEditLoadFolder.setText(dir)
def eventFilter(self, source: QLineEdit, event: Union[QDropEvent, QMouseEvent, QDragEnterEvent]): if event.type() == QEvent.DragEnter: event.accept() elif event.type() == QEvent.Drop: # 任何拖放事件 都先清空原来的内容 source.clear() md = event.mimeData() # type: QMimeData if md.hasUrls() and len(md.urls()) == 1: path = md.urls()[0].toLocalFile() if os.path.exists(path): source.setText(path) self.update_name.emit(path) return True elif event.type() == QEvent.MouseButtonDblClick: # 选择本地headers.json文件 fileName, selectedFilter = QFileDialog.getOpenFileUrl( None, caption="select headers.json", dir=QUrl("file://.")) if isinstance(fileName, QUrl): path = fileName.toLocalFile() if os.path.exists(path): source.clear() source.setText(path) self.update_name.emit(path) return True return super(HeaderFileQLineEdit, self).eventFilter(source, event)
def saveReport(self): filename, filter = QFileDialog.getSaveFileName( None, self.tr("Save report to:"), ".", self.tr("Excel files (*.xlsx)")) if filename: if filter == self.tr( "Excel files (*.xlsx)") and filename[-5:] != '.xlsx': filename = filename + '.xlsx' else: return report = XLSX(filename) # sheet = report.add_report_sheet(self.tr("Report")) # # model = self.table_view.model() # headers = {} # for col in range(model.columnCount()): # headers[col] = (model.headerData(col, Qt.Horizontal), report.formats.ColumnHeader()) # report.write_row(sheet, 0, headers) # # for row in range(model.rowCount()): # data_row = {} # for col in range(model.columnCount()): # data_row[col] = (model.data(model.index(row, col)), report.formats.Text(row)) # report.write_row(sheet, row+1, data_row) report.save()
def save_as(self): sig_filter = 'Signature library (*.sig)' json_zlib_filter = 'Compressed JSON signature library (*.json.zlib)' json_filter = 'JSON signature library (*.json)' pkl_filter = 'Pickled signature library (*.pkl)' fname, filter = QFileDialog.getSaveFileName(self, 'Open file', filter=';;'.join([ sig_filter, json_zlib_filter, json_filter, pkl_filter ])) if filter == json_zlib_filter: with open(fname, 'wb') as f: f.write( zlib.compress( sig_serialize_json.serialize( self.sig_trie).encode('utf-8'))) elif filter == json_filter: with open(fname, 'w') as f: json.dump(sig_serialize_json.serialize(self.sig_trie), f, indent=4) elif filter == sig_filter: with open(fname, 'wb') as f: f.write(sig_serialize_fb.SignatureLibraryWriter().serialize( self.sig_trie)) elif filter == pkl_filter: with open(fname, 'wb') as f: pickle.dump(self.sig_trie, f) else: return print('Saved as ' + fname)
def select_output_dir(self): self.output_dir_path = QFileDialog.getExistingDirectory( None, self.select_output_dir_title, "C:/") if self.output_dir_path == '' or not os.path.exists( self.output_dir_path): return self.txtOutputDir.setText(self.output_dir_path)
def browse_file(self): save_file = QFileDialog.getSaveFileName(self, caption="Save File As", filter="All Files (*.*)", dir=".") self.ui.txt_dest.setText(save_file[0])
def getInputDir(self): dir = QFileDialog.getExistingDirectory(None, "Select folder", self.userDesktop) if dir: path = dir.replace("/", "\\") self.InputLineEdit.setText(path)
def button_target_clicked(self): """ Callback for button_target """ target_path, _ = QFileDialog.getSaveFileName(self, "Save Video", "", "Video Files (*.mkv)") self.ui.line_target.setText(target_path)
def _handle_file_open(self): if self.config_has_changes: msg = QMessageBox( QMessageBox.Warning, "Are you sure?", ("You have unsaved changes to your current config. " "If you continue all unsaved changes will be lost."), buttons=QMessageBox.Open | QMessageBox.Cancel, ) if msg.exec_() == QMessageBox.Cancel: return file_path = QFileDialog.getOpenFileName( self, caption="Open a new config...", dir=os.getcwd(), filter="Config Files (*.yml *.yaml)", )[0] if file_path: self.reset_changes(file_path) # update the new log location self.update_log_paths(file_path) # setup the config tabs self.initialise_config_tabs(self.config)
def navigate_for_path(self): self.dialog = QFileDialog(self) path = "" if self.type == 'file': self.dialog.setFileMode(QFileDialog.ExistingFile) self.dialog.setNameFilter("Text files (*.txt)") self.dialog.exec() path = self.dialog.selectedFiles()[0] #path = self.dialog.getOpenFileName(self)[0] elif self.type == 'folder': path = self.dialog.getExistingDirectory(self) print(path) self.input.setText(path) return
def open_file(self): sig_filter = 'Signature library (*.sig)' json_zlib_filter = 'Compressed JSON signature library (*.json.zlib)' json_filter = 'JSON signature library (*.json)' pkl_filter = 'Pickled signature library (*.pkl)' fname, filter = QFileDialog.getOpenFileName(self, 'Open file', filter=';;'.join([ sig_filter, json_zlib_filter, json_filter, pkl_filter ])) if filter and fname: print('Opening signature library %s' % (fname, )) if filter == json_zlib_filter: with open(fname, 'rb') as f: json_trie = zlib.decompress(f.read()).decode('utf-8') sig_trie = sig_serialize_json.deserialize(json.loads(json_trie)) elif filter == json_filter: with open(fname, 'r') as f: json_trie = f.read() sig_trie = sig_serialize_json.deserialize(json.loads(json_trie)) elif filter == sig_filter: with open(fname, 'rb') as f: fb_trie = f.read() sig_trie = sig_serialize_fb.SignatureLibraryReader().deserialize( fb_trie) elif filter == pkl_filter: with open(fname, 'rb') as f: sig_trie = pickle.load(f) else: return self.open_trie(sig_trie, os.path.basename(fname))
def _on_add_click(self): # https://doc.qt.io/qtforpython/PySide6/QtWidgets/QFileDialog.html#PySide6.QtWidgets.PySide6.QtWidgets.QFileDialog.getOpenFileNames self.refPaths, selectedFilter = QFileDialog.getOpenFileNames( caption="Select one or more files to open", filter="PDF (*.pdf)", dir="Desktop") # add refname to the item container self.refNames = [] for refPath in self.refPaths: # widgetres = [] # # 获取listwidget中条目数 # count = window.refList.count() # 遍历listwidget中的内容 # for i in range(count): # widgetres.append(self.listWidget.item(i).text()) # print(widgetres) refName = refPath.split('/')[-1] if refName not in self.refNames: # https://doc.qt.io/qtforpython/PySide6/QtWidgets/QListWidget.html self.window.refListView.addItem(refName) self.refNames.append(refName) else: continue self.update()