def endSoundFileButtonClicked(self) -> None: fd = QFileDialog(self) fd.setDirectory("./data/tts") f = fd.getOpenFileName(filter="*.mp3") if f and os.path.isfile(f[0]): name = self.trigger.package.add_audio(f[0]) self.trigger.end_action.sound.name = name self.endSoundFileLabel.setText(self.trigger.end_action.sound.name) fd.deleteLater() fd.setParent(None)
def save_plots(self): """Сохранить графики в файл""" file_dialogue = QFileDialog() file_dialogue.setFileMode(QFileDialog.AnyFile) file_dialogue.setAcceptMode(QFileDialog.AcceptSave) name_filters = ["PNG images (*.png)", "All files (*.*)"] file_dialogue.setNameFilters(name_filters) if file_dialogue.exec(): filename = file_dialogue.selectedFiles()[0] try: self.canvas.figure.savefig(filename) except PermissionError as e: QMessageBox.warning(self, "Error", str(e)) self.canvas.draw() file_dialogue.deleteLater()
def __open_dialog__(title, file_types, dir, setup_dialog, parent=None): dialog = QFileDialog(parent) if file_types: dialog.setNameFilter(file_types) dialog.setDirectory(dir) dialog.setWindowTitle(title) setup_dialog(dialog) dialog.finished.connect(lambda: dialog.deleteLater()) dialog.show()
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 browse(self): """ Open a file dialog and select a user specified file. """ formats = [ "Text - comma separated (*.csv, *)", "Text - tab separated (*.tsv, *)", "Text - all files (*)" ] dlg = QFileDialog( self, windowTitle="Open Data File", acceptMode=QFileDialog.AcceptOpen, fileMode=QFileDialog.ExistingFile ) dlg.setNameFilters(formats) state = self.dialog_state lastdir = state.get("directory", "") lastfilter = state.get("filter", "") if lastdir and os.path.isdir(lastdir): dlg.setDirectory(lastdir) if lastfilter: dlg.selectNameFilter(lastfilter) status = dlg.exec_() dlg.deleteLater() if status == QFileDialog.Accepted: self.dialog_state["directory"] = dlg.directory().absolutePath() self.dialog_state["filter"] = dlg.selectedNameFilter() selected_filter = dlg.selectedNameFilter() path = dlg.selectedFiles()[0] # pre-flight check; try to determine the nature of the file mtype = _mime_type_for_path(path) if not mtype.inherits("text/plain"): mb = QMessageBox( parent=self, windowTitle="", icon=QMessageBox.Question, text="The '{basename}' may be a binary file.\n" "Are you sure you want to continue?".format( basename=os.path.basename(path)), standardButtons=QMessageBox.Cancel | QMessageBox.Yes ) mb.setWindowModality(Qt.WindowModal) if mb.exec() == QMessageBox.Cancel: return # initialize dialect based on selected extension if selected_filter in formats[:-1]: filter_idx = formats.index(selected_filter) if filter_idx == 0: dialect = csv.excel() elif filter_idx == 1: dialect = csv.excel_tab() else: dialect = csv.excel_tab() header = True else: try: dialect, header = sniff_csv_with_path(path) except Exception: # pylint: disable=broad-except dialect, header = csv.excel(), True options = None # Search for path in history. # If found use the stored params to initialize the import dialog items = self.itemsFromSettings() idx = index_where(items, lambda t: samepath(t[0], path)) if idx is not None: _, options_ = items[idx] if options_ is not None: options = options_ if options is None: if not header: rowspec = [] else: rowspec = [(range(0, 1), RowSpec.Header)] options = Options( encoding="utf-8", dialect=dialect, rowspec=rowspec) dlg = CSVImportDialog( self, windowTitle="Import Options", sizeGripEnabled=True) dlg.setWindowModality(Qt.WindowModal) dlg.setPath(path) dlg.setOptions(options) status = dlg.exec_() dlg.deleteLater() if status == QDialog.Accepted: self.set_selected_file(path, dlg.options())
def browse(self): """ Open a file dialog and select a user specified file. """ formats = [ "Text - comma separated (*.csv, *)", "Text - tab separated (*.tsv, *)", "Text - all files (*)" ] dlg = QFileDialog( self, windowTitle="Open Data File", acceptMode=QFileDialog.AcceptOpen, fileMode=QFileDialog.ExistingFile ) dlg.setNameFilters(formats) state = self.dialog_state lastdir = state.get("directory", "") lastfilter = state.get("filter", "") if lastdir and os.path.isdir(lastdir): dlg.setDirectory(lastdir) if lastfilter: dlg.selectNameFilter(lastfilter) status = dlg.exec_() dlg.deleteLater() if status == QFileDialog.Accepted: self.dialog_state["directory"] = dlg.directory().absolutePath() self.dialog_state["filter"] = dlg.selectedNameFilter() selected_filter = dlg.selectedNameFilter() path = dlg.selectedFiles()[0] # pre-flight check; try to determine the nature of the file mtype = _mime_type_for_path(path) if not mtype.inherits("text/plain"): mb = QMessageBox( parent=self, windowTitle="", icon=QMessageBox.Question, text="The '{basename}' may be a binary file.\n" "Are you sure you want to continue?".format( basename=os.path.basename(path)), standardButtons=QMessageBox.Cancel | QMessageBox.Yes ) mb.setWindowModality(Qt.WindowModal) if mb.exec() == QMessageBox.Cancel: return # initialize dialect based on selected extension if selected_filter in formats[:-1]: filter_idx = formats.index(selected_filter) if filter_idx == 0: dialect = csv.excel() elif filter_idx == 1: dialect = csv.excel_tab() else: dialect = csv.excel_tab() header = True else: try: dialect, header = sniff_csv_with_path(path) except Exception: dialect, header = csv.excel(), True options = None # Search for path in history. # If found use the stored params to initialize the import dialog items = self.itemsFromSettings() idx = index_where(items, lambda t: samepath(t[0], path)) if idx is not None: _, options_ = items[idx] if options_ is not None: options = options_ if options is None: if not header: rowspec = [] else: rowspec = [(range(0, 1), RowSpec.Header)] options = Options( encoding="utf-8", dialect=dialect, rowspec=rowspec) dlg = CSVImportDialog( self, windowTitle="Import Options", sizeGripEnabled=True) dlg.setWindowModality(Qt.WindowModal) dlg.setPath(path) dlg.setOptions(options) status = dlg.exec_() dlg.deleteLater() if status == QDialog.Accepted: self.set_selected_file(path, dlg.options())
def load_data(self): self.window.mode_comboBox.setItemData(0, QVariant(1 | 32), Qt.UserRole - 1) self.window.mode_comboBox.setItemData(1, QVariant(1 | 32), Qt.UserRole - 1) self.window.mode_comboBox.setItemData(2, QVariant(1 | 32), Qt.UserRole - 1) Dialog = QFileDialog() file_names, filetype = Dialog.getOpenFileNames(self.window, "选取文件", # 获得当前路径 os.getcwd(), # 起始路径 "CSV文件 (*.csv);;所有文件 (*)") # 设置文件扩展名过滤,用双分号间隔 if file_names == []: print("\n取消选择") Dialog.deleteLater() sip.delete(Dialog) gc.collect() else: """ 如果选择单个文件则判断是合并的周级数据还是天级数据 周级数据:大文件模式 天级数据:小文件绘图模式 如果选择多个文件 多个文件:多文件模式 """ if len(file_names) == 1: """ 得到文件的大小 单位 kb 1M = 1024 kb 300M = 307200 kb 如果文件小于300M则选择小文件绘图模式 否则大文件模式 """ self.need_deal_data = file_names[0] self.window.select_project_comboBox.setEnabled(True) file_size = os.path.getsize(self.need_deal_data) file_size = float(file_size) / float(1024 * 1024) # M if file_size <= 300: # 设置模式为小文件绘图模式,1,2 选项不可选 self.window.mode_comboBox.setItemData(1, 0, Qt.UserRole - 1) self.window.mode_comboBox.setItemData(2, 0, Qt.UserRole - 1) # 设置模式1 self.mode = 1 self.window.mode_comboBox.setCurrentIndex(0) print("mode1") else: self.need_deal_data = file_names[0] self.window.select_project_comboBox.setEnabled(True) # 设置模式为大文件,0,2 选项不可选 self.window.mode_comboBox.setItemData(0, 0, Qt.UserRole - 1) self.window.mode_comboBox.setItemData(2, 0, Qt.UserRole - 1) # 设置模式2 self.mode = 2 self.window.mode_comboBox.setCurrentIndex(1) print("mode2") else: self.window.select_project_comboBox.setEnabled(True) # 还未设计多文件选择模式 self.need_deal_data = file_names # 设置模式为多文件模式,0,2 选项不可选 self.window.mode_comboBox.setItemData(0, 0, Qt.UserRole - 1) self.window.mode_comboBox.setItemData(1, 0, Qt.UserRole - 1) # 设置模式3 self.mode = 3 print("mode3") # 设置选择下拉框可见 Dialog.deleteLater() sip.delete(Dialog) gc.collect()