Exemple #1
0
 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)
Exemple #2
0
 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()
Exemple #3
0
 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()
Exemple #4
0
 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()
Exemple #5
0
 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()
Exemple #6
0
 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()
Exemple #7
0
    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())
Exemple #9
0
    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()