Exemple #1
0
    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()
Exemple #2
0
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.xml *.fuzz);;All files (*)"
    elif caption == "Save encoding":
        name_filter = ""
    elif caption == "Save simulator profile":
        name_filter = "Simulator (*.sim.xml *.sim);;All files (*)"
    else:
        name_filter = "Protocols (*.proto.xml *.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
Exemple #3
0
    def onLoadClicked(self, fileType):
        mySettings = QSettings()
        fileDir = mySettings.value(self.DEFAULT_DIR_KEY)
        options = QFileDialog.Options()
        options |= QFileDialog.DontUseNativeDialog
        fileDialog = QFileDialog()
        fileDialog.setDirectory(fileDir)

        defaultFile = {
            0: 'CT-Abdomen.mhd',
            1: 'Connected.vtp',
            2: 'Liver_3D_Fast_Marching_Closed.vtp',
            3: 'VesselVolume.mhd'
        }[fileType]

        defaultFile = os.path.join(fileDir, defaultFile)

        fileName, _ = \
          fileDialog.getOpenFileName(self,
                                     "QFileDialog.getOpenFileName()",
                                     defaultFile, "All Files (*)MHD Files (*.mhd) VTP Files (*.vtp)",
                                     options=options)
        if fileName:
            # Update default dir
            currentDir = QFileInfo(fileName).absoluteDir()
            mySettings.setValue(self.DEFAULT_DIR_KEY,
                                currentDir.absolutePath())
            info = QFileInfo(fileName)
            if (info.completeSuffix() == "mhd") and fileType == 0:
                # Load data
                self.loadFile(fileName)
            elif (info.completeSuffix() == "vtp") and fileType == 1:
                self.loadSurface(fileName, contours=True)
            elif (info.completeSuffix() == "vtp") and fileType == 2:
                self.loadSurface(fileName, contours=False)
            elif (info.completeSuffix() == "mhd") and fileType == 3:
                self.loadUSFile(fileName)
    def load_text(self):
        print("load--csv")
        dlg = QFileDialog()
        dlg.setFileMode(QFileDialog.AnyFile)
        dlg.setFilter(QDir.Files)
        if dlg.exec_():
          self.filenames = dlg.selectedFiles()
          print(self.filenames)
          fileDevice = QFile(self.filenames[0])

        if not fileDevice.open(QIODevice.ReadOnly | QIODevice.Text):
          return False
        #f = open(filenames[0], 'r')
        data = []
        #try:
        #print(fileDevice.atEnd())
        while not fileDevice.atEnd():
          #print("a")

          qtBytes = fileDevice.readLine()
          pyBytes = bytes(qtBytes.data())  # QByteArray转换为bytes类型
          lineStr = pyBytes.decode("UTF-8-sig")  # bytes转换为str型
          lineStr = lineStr.strip()  # 去除结尾增加的空行
          data.append(lineStr.split(","))  # 返回QByteArray类型
          #print(qtBytes)
        self.data = data
        print(data[0])
        fileDevice.close()

        localtime = time.localtime(time.time())
        time_s  =time.strftime("%Y-%m-%d %H:%M:%S",localtime)
        s_r = "时间:{}读取文件:{}\n".format(time_s,self.filenames)
        self.logW(s_r)
        #finally:
        #    print("b")
            #self.textEdit2.setText(data)
        self.textEdit.setText("读取成功")
Exemple #5
0
def dlg_export(parent):

    dialog = QFileDialog(parent)
    dialog.setWindowTitle(_("Export the simulation as"))
    dialog.setAcceptMode(QFileDialog.AcceptSave)
    types = []
    types.append(_("gpvdm archive input+output files") + " (*.gpvdm)")
    types.append(_("gpvdm archive input files") + " (*.gpvdm)")
    types.append(_("optical materials database") + " (*.zip)")
    types.append(_("pdf file") + " (*.pdf)")
    types.append(_("jpg image") + " (*.jpg)")
    types.append(_("tex file") + " (*.tex)")
    types.append(_("Excel file") + " (*.xlsx)")

    dialog.setNameFilters(types)
    dialog.setFileMode(QFileDialog.ExistingFile)
    dialog.setAcceptMode(QFileDialog.AcceptSave)

    if dialog.exec_() == QDialog.Accepted:
        file_name = dialog.selectedFiles()[0]
        #print(dialog.selectedNameFilter())
        if dialog.selectedNameFilter(
        ) == _("gpvdm archive input+output files") + " (*.gpvdm)":
            export_archive(file_name, True)
        elif dialog.selectedNameFilter(
        ) == _("gpvdm archive input files") + " (*.gpvdm)":
            export_archive(file_name, False)
        elif dialog.selectedNameFilter(
        ) == _("optical materials database") + " (*.zip)":
            export_materials(file_name)
        elif dialog.selectedNameFilter(
        ) == _("pdf file") + " (*.pdf)" or dialog.selectedNameFilter(
        ) == _("jpg image") + " (*.jpg)" or dialog.selectedNameFilter(
        ) == _("tex file") + " (*.tex)":
            export_as(file_name)
        elif dialog.selectedNameFilter() == _("Excel file") + " (*.xlsx)":
            gen_workbook(get_sim_path(), set_file_ext(file_name, ".xlsx"))
Exemple #6
0
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
Exemple #7
0
def get_open_dialog(directory_mode=False, parent=None, name_filter="full") -> QFileDialog:
    fip = FileIconProvider()
    dialog = QFileDialog(parent=parent, directory=RECENT_PATH)
    dialog.setIconProvider(fip)

    if directory_mode:
        dialog.setFileMode(QFileDialog.Directory)
        dialog.setWindowTitle("Open Folder")
    else:
        dialog.setFileMode(QFileDialog.ExistingFiles)
        dialog.setWindowTitle("Open Files")
        if name_filter == "full":
            name_filter = "All Files (*);;" \
                          "Complex (*.complex);;" \
                          "Complex16 unsigned (*.complex16u *.cu8);;" \
                          "Complex16 signed (*.complex16s *.cs8);;" \
                          "WAV (*.wav);;" \
                          "Protocols (*.proto.xml *.proto);;" \
                          "Binary Protocols (*.bin);;" \
                          "Fuzzing Profiles (*.fuzz.xml *.fuzz);;" \
                          "Simulator (*.sim.xml *.sim)" \
                          "Plain Bits (*.txt);;" \
                          "Tar Archives (*.tar *.tar.gz *.tar.bz2);;" \
                          "Zip Archives (*.zip)"
        elif name_filter == "proto":
            name_filter = "Protocols (*.proto.xml *.proto);; Binary Protocols (*.bin)"
        elif name_filter == "fuzz":
            name_filter = "Fuzzprofiles (*.fuzz.xml *.fuzz)"
        elif name_filter == "simulator":
            name_filter = "Simulator (*.sim.xml *.sim)"

        dialog.setNameFilter(name_filter)

    dialog.setOptions(QFileDialog.DontResolveSymlinks)
    dialog.setViewMode(QFileDialog.Detail)

    return dialog
Exemple #8
0
    def save_measurement_settings_file(self):
        """ This function saves a measuerment settings file"""
        fileDialog = QFileDialog()
        file = fileDialog.getSaveFileName()

        if file[0]:
            with open(os.path.normpath(file[0].split(".")[0]) + ".yml",
                      "w+") as fp:
                self.variables.framework_variables["Configs"]["config"][
                    "MeasurementSettings"]["Settings_name"] = os.path.basename(
                        file[0])
                yaml.safe_dump(
                    self.variables.framework_variables["Configs"]["config"]
                    ["MeasurementSettings"],
                    fp,
                )

            self.variables.framework_variables["Configs"]["additional_files"][
                "Measurement_Settings"][os.path.basename(
                    file[0])] = self.variables.framework_variables["Configs"][
                        "config"]["MeasurementSettings"]
            self.variables.framework_variables["Configs"]["additional_files"][
                "Measurement_Settings"][os.path.basename(
                    file[0])]["raw"] = yaml.dump(
                        self.variables.framework_variables["Configs"]["config"]
                        ["MeasurementSettings"])
            self.Settings_gui.select_settings_comboBox.addItem(
                os.path.basename(file[0]))

            index = self.Settings_gui.select_settings_comboBox.findText(
                os.path.basename(file[0]), QtCore.Qt.MatchFixedString)
            if index >= 0:
                self.Settings_gui.select_settings_comboBox.setCurrentIndex(
                    index)

            self.Setlog.info(
                "Settings file successfully written to: {}".format(file[0]))
Exemple #9
0
    def _onExportMixedSignals(self):
        dlg = ui.selectmixerdialog.SelectMixerDialog(
            self._mixerFactory.availableMixers(), self)
        ret = dlg.exec_()
        if ret != QDialog.Accepted:
            return

        try:
            mixer = self._mixerFactory.getMixer(dlg.selectedMixer)
            (header, cocktail) = mixer.mix(self._signalModel.allSignals())

            fileDlg = QFileDialog(self)
            fileDlg.setAcceptMode(QFileDialog.AcceptSave)
            fileDlg.setNameFilters(['CSV file (*.csv)'])
            if fileDlg.exec_() != QDialog.Accepted:
                return

            selFiles = fileDlg.selectedFiles()
            if len(selFiles) < 1:
                return

            outputPath = selFiles[0]

            writer = csvcocktailwriter.CSVCocktailWriter()
            writer.write(header, cocktail, outputPath)
            self._lastOutputPath = os.path.realpath(
                os.path.dirname(outputPath))
        except SignalTraceModelError:
            pass
        except signalmixerfactory.NoSuchMixerError as ex:
            mbox = QMessageBox(QMessageBox.Critical, 'Unable to mix signals',
                               str(ex))
            mbox.exec_()
        except abstractcocktailwriter.CocktailWriterError as ex:
            mbox = QMessageBox(QMessageBox.Warning,
                               'Unable to write mixed signals', str(ex))
            mbox.exec_()
Exemple #10
0
    def addFile(self):
        dial = QFileDialog()

        #Получение нужного для добавления файла
        try:
            if self.firstOpen:
                name = dial.getOpenFileName(self, "Choose file",
                                            QDir.homePath())
                self.firstOpen = False
            else:
                name = dial.getOpenFileName(self, "Choose file")
            file = str(
                name
            )[2:-6 - self.
              filepathStrNum]  #('C:/Users/Nikita/Desktop/spiral iz chiesl.py', '')
            file = file.replace('/', os.path.sep)
            parts = file.split(os.path.sep)
            shutil.copyfile(file, os.path.join(
                'tmp', parts[-1]))  #parts[-1] Собственно имя файла
        except Exception:
            dial.accept()
            return

        #Получение нужной иконки исходя из расширения файла
        ext = '.' + parts[-1].split('.')[-1]
        ext = ext.lower()
        try:
            iconpath = self.extensions[ext]
        except Exception:
            iconpath = os.path.join(self.resourceFolder, 'blank.png')

        a = QListWidgetItem(parts[-1])
        a.setIcon(QIcon(iconpath))
        a.setSizeHint(
            QSize(100 / 1920 * self.screenWidth,
                  33 / 1080 * self.screenHeight))
        self.list.addItem(a)
Exemple #11
0
    def exportAllPosts(self, posts):
        posts = ujson.loads(posts)
        print('posts:', posts)

        fileName = 'Posts compilation at %s' % datetime.now().date()
        from PyQt5.QtWidgets import QFileDialog
        dialog = QFileDialog()
        filePath = dialog.getSaveFileName(None, 'Please select a location to save a post.', fileName + '.txt')
        filePath = filePath[0]
        if not filePath:
            return False

        def produceSinglePostText(postAsDict):
            postText =  \
u"""
%s\n
by %s, at %s\n\n
""" \
            % (postAsDict['Body'], postAsDict['OwnerUsername'], str(datetime.utcfromtimestamp(float(postAsDict['CreationDate']))))
            return postText

        def attachCredits(text):
            creditsText =  \
u"""YOUR SAVED POSTS AT %s
%s
Gathered from Aether network. Aether is a distributed network of anonymous forums. Join us at www.getaether.net.
These posts are licensed under CC-BY-SA.
""" % (datetime.now().date(), text)
            return creditsText

        finalPostText = u""
        for p in posts:
            finalPostText = finalPostText + produceSinglePostText(p)
        f = open(filePath, 'wb')
        f.write(attachCredits(finalPostText).encode('utf8'))# Encode only happens at the end.
        f.close()
        return True
Exemple #12
0
    def load_maze(self):
        """ Load a maze from a file. The expected format for the file has the dimensions of the maze on the first line
        in the format "columns rows" (two integers separated by a space). Then there are columns x rows lines, each
        containing 2 binary digits indicating whether the cell has a bottom or right wall. In total the file will have
        columns x rows + 1 lines
        """
        # Allow user to select filename
        dialog = QFileDialog()
        path = Path('./mazes')
        filename = dialog.getOpenFileName(dialog, "Load maze",
                                          str(path.resolve()), '*.txt')[0]
        if not filename:
            # No filename chosen
            return False

        self.display.delete_grid()
        del self.cells[:]

        with open(filename, 'r') as file:
            lines = file.readlines()
            columns, rows = [int(x) for x in lines[0].split()]
            self.display.set_maze_dimensions(columns, rows)

            x, y = 0, 0
            for line in lines[1:]:
                line = line.strip()
                cell = RunnerCell(x, y, int(line[0]), int(line[1]),
                                  self.display)
                self.cells.append(cell)

                x = (x + 1) % columns
                if not x:
                    y = (y + 1)

        if len(self.cells) != columns * rows:
            return False
        return True
Exemple #13
0
    def __init__(self, parent: QMainWindow):
        self._file_dialog = QFileDialog()

        self.parent = parent
        # Converter widget that runs hermes' main operations, set in Primary after initialisation of all elements.
        self.converter = None

        # Project Parameters/Paths
        self.project_name = ""
        self.project_path = ""
        self.assets_audio_path = ""
        self.assets_images_path = ""
        self.export_path = ""
        self.templates_path = ""
        self.saves_path = ""

        # Save file parameters TODO: Create Save Object
        self.save_fp = None
        self.save_data = None
        self.data_author = ""
        self.data_transcription_language = ""
        self.data_translation_language = ""

        # Template parameters
        self.template_name = None
        self.template_type = None
        self.template_data = None
        self.template_options = TemplateDialog(self.parent, self)

        # Autosave parameters
        self.autosave_thread = None
        self.autosave_fp = None
        self.autosave_interval = 120  # Seconds

        # Session Parameters
        self.save_mode = SaveMode.MANUAL
 def openImageBrowser(self):
     try:
         ImageBrowser = QFileDialog()
         options = ImageBrowser.Option()
         options |= ImageBrowser.DontUseNativeDialog
         ImageBrowser.setFileMode(QFileDialog.ExistingFiles)
         ImageBrowser.setNameFilter(
             ("All Files (*);;Images (*.jpeg *.jpg *.png *.gif)"))
         if ImageBrowser.exec_():
             self.SelectedFileList = ImageBrowser.selectedFiles()
         if len(self.SelectedFileList) == 0:
             return
         self.SelectedFile = self.SelectedFileList[0]
         if self.SelectedFile.split('.')[-1] not in [
                 "jpeg", "jpg", "png", "gif"
         ]:
             QMessageBox.information(None, "Warning",
                                     "Not a valid image file",
                                     QMessageBox.Ok)
         self.ImageEdit.setText(self.SelectedFile)
     except Exception as err:
         print(err)
         QMessageBox.information(None, "Warning", "File did not selected",
                                 QMessageBox.Ok)
 def show_dlg_path(self):
     dir_path = '..'
     dlg_files = QFileDialog()
     dlg_files.setFileMode(QFileDialog.AnyFile)
     dlg_files.setLabelText(QFileDialog.LookIn, 'Открыть файл канала режимов ...')
     dlg_files.setAcceptMode(QFileDialog.AcceptOpen)
     dlg_files.setDirectory(dir_path)
     if dlg_files.exec_():
         self.table_cycl.clear()
         self.table_cycl.setRowCount(0)
         self.table_cycl.setColumnCount(3)
         self.table_cycl.setHorizontalHeaderLabels(["№", "Время", "Характеристика"])
         self.fname = dlg_files.selectedFiles()[0]
         self.lbl_path.setText(self.fname)
         if self.thread is not None:
             self.thread.disconnect()
             self.thread = None
         self.num_order = self.get_numord()
         self.setStatusTip('Идет обработка...')
         self.thread = CyclogrModeThread(self.fname, self.num_order, self.grafik)
         self.thread.s_error[str].connect(self.showDlgErr)
         self.thread.finished.connect(self.finished_cyclogr_mode_thread)
         self.thread.s_mode.connect(self.update_table)
         self.thread.start()
Exemple #16
0
    def add_image_file(self):
        """
        Slot documentation goes here.
        """
        # TODO: not implemented yet
        filenames = QFileDialog(self).getOpenFileNames(self, '打开图像文件', filter='Image Files(*.png *.jpg *.bmp *.TIF)')
        for filename in filenames[0]:
            self.numOfPicture += 1
            f = image.imread(filename)
            self.width = len(f)
            self.height = len(f[0])
            self.listWidget_IMG.addItem(filename)
            self.img.append(f)

            tab = QtWidgets.QWidget()
            tab.setObjectName("tab")
            gridLayout_6 = QtWidgets.QGridLayout(tab)
            gridLayout_6.setContentsMargins(0, 0, 0, 0)
            gridLayout_6.setObjectName("gridLayout_6")
            scrollArea_2 = QtWidgets.QScrollArea(tab)
            scrollArea_2.setWidgetResizable(True)
            scrollArea_2.setObjectName("scrollArea_2")
            scrollAreaWidgetContents_2 = QtWidgets.QWidget()
            scrollAreaWidgetContents_2.setGeometry(QtCore.QRect(0, 0, 570, 548))
            scrollAreaWidgetContents_2.setObjectName("scrollAreaWidgetContents_2")
            gridLayout_5 = QtWidgets.QGridLayout(scrollAreaWidgetContents_2)
            gridLayout_5.setContentsMargins(0, 0, 0, 0)
            gridLayout_5.setObjectName("gridLayout_5")
            label_Result = QtWidgets.QLabel(scrollAreaWidgetContents_2)
            label_Result.setObjectName("label_Result")
            gridLayout_5.addWidget(label_Result, 0, 1, 1, 1)
            scrollArea_2.setWidget(scrollAreaWidgetContents_2)
            gridLayout_6.addWidget(scrollArea_2, 0, 0, 1, 1)
            self.tabWidget.addTab(tab, "")
            self.tabWidget.setTabText(self.tabWidget.indexOf(tab), '图层' + str(self.numOfPicture))
            label_Result.setPixmap(QPixmap(filename))
    def _browseForBdvFile(self):
        """Browse for BigDataViewer file and add the its path to the additionalPluginArgumentsSlot"""
        starting_dir = self._topLevelOp.WorkingDirectory.value
        additional_args_ready = self._additionalPluginArgumentsSlot.ready()
        if additional_args_ready:
            bdv_file_path = self._additionalPluginArgumentsSlot.value.get(
                'bdvFilepath')
            if bdv_file_path is not None:
                starting_dir = os.path.split(bdv_file_path)[0]

        dlg = QFileDialog(self, "BigDataViewer File Location", starting_dir,
                          "XML files (*.xml)")
        dlg.setAcceptMode(QFileDialog.AcceptOpen)
        if not dlg.exec_():
            return

        bdv_file_path = dlg.selectedFiles()[0]
        if additional_args_ready:
            additional_args = self._additionalPluginArgumentsSlot.value
        else:
            additional_args = {}
        additional_args['bdvFilepath'] = bdv_file_path
        self._additionalPluginArgumentsSlot.setValue(additional_args)
        self.bdvFilepath.setText(bdv_file_path)
    def seek(self):
        fileName = ""
        dialog = QFileDialog()
        dialog.setFileMode(QFileDialog.AnyFile)
        dialog.setNameFilter(
            QCoreApplication.translate("ImageEditor", "Images") +
            " (*.png *.gif *.jpg)All (*)")
        dialog.setWindowTitle(
            QCoreApplication.translate("ImageEditor", "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 assets dir
        name = os.path.basename(fileName).replace(" ", "_")
        path = os.path.join(self.site.source_path, "assets", "images", name)
        self.source.setText(os.path.basename(path))
        try:
            shutil.copy(fileName, path)
        except shutil.SameFileError:
            pass

        # also copy file to deploy dir for previews
        dpath = os.path.join(self.site.source_path, self.site.output, "assets",
                             "images", name)
        try:
            shutil.copy(fileName, dpath)
        except shutil.SameFileError:
            pass

        self.image.setImage(QImage(path))
        self.contentChanged()
Exemple #19
0
 def openAfterMaybeSave(self):
     """
     This is the method that initiates file opening. It is called by
     actionOpenSlot to spawn a QFileDialog and connect it to a callback
     method.
     """
     path = self._file_open_path
     if util.isWindows():  # required for native looking file window#"/",
         fname = QFileDialog.getOpenFileName(
             None, "Open Document", path,
             "cadnano1 / cadnano2 Files (*.nno *.json *.c25)")
         self.filesavedialog = None
         self.openAfterMaybeSaveCallback(fname)
     else:  # access through non-blocking callback
         fdialog = QFileDialog(
             self.win, "Open Document", path,
             "cadnano1 / cadnano2 Files (*.nno *.json *.c25)")
         fdialog.setAcceptMode(QFileDialog.AcceptOpen)
         fdialog.setWindowFlags(Qt.Sheet)
         fdialog.setWindowModality(Qt.WindowModal)
         self.fileopendialog = fdialog
         self.fileopendialog.filesSelected.connect(
             self.openAfterMaybeSaveCallback)
         fdialog.open()
Exemple #20
0
def LoadMultiFile(Title="Load ...",
                  Filters=['All files (*.*)'],
                  Suffix=None,
                  currentDirectory=None,
                  currentFile=None):
    from PyQt5.QtWidgets import QDialog, QFileDialog
    import PyQt5.QtCore as QtCore
    dialog = QFileDialog()
    dialog.setWindowTitle(Title)
    if currentDirectory is not None:
        if len(currentDirectory):
            dialog.setDirectory(currentDirectory)
    if currentFile is not None:
        dialog.selectFile(currentFile)
    if Suffix is not None:
        dialog.setDefaultSuffix(Suffix)
    dialog.setOption(QFileDialog.DontUseNativeDialog)
    dialog.setFilter(dialog.filter() | QtCore.QDir.Hidden)
    dialog.setNameFilters(Filters)
    dialog.setFileMode(QFileDialog.ExistingFiles)
    dialog.setAcceptMode(QFileDialog.AcceptOpen)
    if dialog.exec_() == QDialog.Accepted:
        return dialog.selectedFiles()
    return []
Exemple #21
0
    def btnChooseDirs_clicked(self):
        # https://stackoverflow.com/questions/38252419/how-to-get-qfiledialog-to-select-and-return-multiple-folders
        # just copied :)
        file_dialog = QFileDialog()
        file_dialog.setFileMode(QFileDialog.DirectoryOnly)
        file_dialog.setOption(QFileDialog.DontUseNativeDialog, True)
        file_dialog.setDirectory(self.sett['/Private settings/Load kinetics last path'])
        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():
            for path in file_dialog.selectedFiles():
                head, tail = os.path.split(path)
                head2, tail2 = os.path.split(head)
                name = os.path.join(tail2, tail)
                self.sett['/Private settings/Load kinetics last path'] = head
                if name not in self.lwFolders.item_names:
                    self.lwFolders.addItem(name, path)
Exemple #22
0
    def _select_file(self):
        graphical_image_filters = [
            ' '.join(el) for el in self._extension_filters
        ] + ['All files (*)']

        open_file, used_filter = QFileDialog().getSaveFileName(
            caption='Select the output file',
            filter=';;'.join(graphical_image_filters))

        if not any(
                open_file.endswith(el[0]) for el in self._extension_filters):
            extension_from_filter = list(
                filter(lambda v: ' '.join(v) == used_filter,
                       self._extension_filters))
            if extension_from_filter:
                extension = extension_from_filter[0][0]
            else:
                extension = self._extension_filters[0][0]

            open_file += '.{}'.format(extension)

        if open_file:
            self.outputFile_box.setText(open_file)
            self._update_ok_button()
Exemple #23
0
def fileDialogGetExistingDirectory(parent: typing.Optional[QWidget] = None,
                                   caption: str = None,
                                   directory: str = None) -> str:
    # Replacement (sort of) for QFileDialog.getExistingDirectory()
    if not caption:
        caption = "Choose directory"
    fileDialog = QFileDialog(parent, caption, directory)
    # directory only
    fileDialog.setFileMode(QFileDialog.DirectoryOnly)
    # just list mode is quite sufficient for choosing a diectory
    fileDialog.setViewMode(QFileDialog.List)
    # only want to to show directories
    fileDialog.setOption(QFileDialog.ShowDirsOnly)
    # native dialog, at least under Ubuntu GNOME is a bit naff for choosing a directory
    # (shows files but greyed out), so going for Qt's own cross-plaform chooser
    fileDialog.setOption(QFileDialog.DontUseNativeDialog)
    # get rid of (or at least grey out) file-types selector
    fileDialog.setOption(QFileDialog.HideNameFilterDetails)
    # DontResolveSymlinks seemingly recommended by http://doc.qt.io/qt-5/qfiledialog.html#getExistingDirectory
    # but I found it didn't make any difference (symlinks resolved anyway)
    # fileDialog.setOption(QtWidgets.QFileDialog.DontResolveSymlinks)
    if not fileDialog.exec():
        return ""
    return fileDialog.selectedFiles()[0]
    def __onFileDialog(self):
        self.__filePath_, fileType = QFileDialog().getOpenFileName(self
                                                                   , "选取tlv文件"
                                                                   , os.getcwd()
                                                                   , "All Files (*);;Tlv Files (*.tlv*)")

        if self.__filePath_ == '':
            return

        if self.__itemDialog_ is not None:
            self.__itemDialog_.destroy()
            self.__itemDialog_ = None

        self.__itemDialog_ = QDialog()
        self.__itemDialog_.resize(500, 80)
        self.__itemDialog_.setWindowTitle('文件路径')
        text = QLabel(self.__itemDialog_)
        if self.__filePath_ == '':
            text.setText('未获取到文件路径')
        else:
            text.setText(self.__filePath_)
        # 模态,只有关闭对话框,才能关闭主窗口
        self.__itemDialog_.setWindowModality(Qt.ApplicationModal)
        self.__itemDialog_.show()
Exemple #25
0
    def ChooseOldApks(self):
        self.logger.info("FUNC: %s" % sys._getframe().f_code.co_name)
        global oldapkspath
        self.textEdit.clear()
        packagename = self.text_packagename.text()  #新版本的packagename
        filedialog = QFileDialog()
        filedialog.setNameFilter("Get Files(*.apk)")
        path = filedialog.getOpenFileNames(
            self, "选取文件", "C:/", "APK Files (*.apk);;Text Files (*.txt)")

        if path != "":

            apkspath = path[0]

            if apkspath != []:
                self.textEdit.clear()
                for x in apkspath:
                    pids = self.GetApkInfo(x)
                    if pids[1][6:-1] != packagename:

                        QMessageBox.warning(self, "警告",
                                            "packageName新老版本不一致,请重新选择!",
                                            QMessageBox.Yes)
                        return 0
                    else:

                        oldapkspath[x] = [
                            pids[1][6:-1],
                            pids[pids.index('launchable-activity:') + 1][6:-1],
                            pids[2], pids[3]
                        ]
                for (k, v) in oldapkspath.items():
                    #s = str(k)+ "\\r" +str(v)
                    self.textEdit.append(str(k))
                    self.textEdit.append(str(v))
                    self.textEdit.append("")
Exemple #26
0
 def show_new_dish_multi_popup(self):
     file_name = QFileDialog().getOpenFileName(None, "选择文件", "",
                                               self.tr("CSV文件 (*.csv)"))[0]
     self.new_dish_multi_popup.tableWidget.setRowCount(0)
     if file_name:
         with open(file_name, "r") as file:
             csv_reader = csv.reader(file, delimiter=",")
             for idx, row_data in enumerate(csv_reader):
                 if len(row_data) == 2:
                     name, price = row_data
                     remark = ""
                 elif len(row_data) == 3:
                     name, price, remark = row_data
                 else:
                     QMessageBox.warning(
                         self, "格式错误",
                         self.tr('格式为"菜品 价格"或者"菜品 价格 备注"\n第{}行输入有误'.format(
                             idx)))
                     return
                 self.new_dish_multi_popup.tableWidget.insertRow(
                     self.new_dish_multi_popup.tableWidget.rowCount())
                 self.new_dish_multi_popup.tableWidget.setItem(
                     idx, 0, QTableWidgetItem(name))
                 price_type = str_type(price)
                 if price_type == str or (isinstance(
                         price_type, (float, int)) and float(price) < 0):
                     QMessageBox.warning(
                         self, "格式错误",
                         self.tr('第{}行价格输入有误'.format(idx + 1)))
                     return
                 self.new_dish_multi_popup.tableWidget.setItem(
                     idx, 1,
                     QTableWidgetItem("{:.2f}".format(float(price))))
                 self.new_dish_multi_popup.tableWidget.setItem(
                     idx, 2, QTableWidgetItem(remark))
         self.new_dish_multi_popup.show()
Exemple #27
0
 def saveFileDialog(self):
     fname = self.fileName()
     if fname is None:
         directory = "."
     else:
         directory = QFileInfo(fname).path()
     if util.isWindows():  # required for native looking file window
         fname = QFileDialog.getSaveFileName(
             self.win, "%s - Save As" % QApplication.applicationName(),
             directory, "%s (*.json)" % QApplication.applicationName())
         if isinstance(fname, (list, tuple)):
             fname = fname[0]
         self.writeDocumentToFile(fname)
     else:  # access through non-blocking callback
         fdialog = QFileDialog(
             self.win, "%s - Save As" % QApplication.applicationName(),
             directory, "%s (*.json)" % QApplication.applicationName())
         fdialog.setAcceptMode(QFileDialog.AcceptSave)
         fdialog.setWindowFlags(Qt.Sheet)
         fdialog.setWindowModality(Qt.WindowModal)
         self.filesavedialog = fdialog
         self.filesavedialog.filesSelected.connect(
             self.saveFileDialogCallback)
         fdialog.open()
Exemple #28
0
def read_file_dialog(neural_network, title="Open File", file_type="All Files"):
    """ Creates a visual interface that user can select a vide path

    Args:
        neural_network_name: string with neural network name
        title: string with the name of the file dialog box
        file_type: string kind of files that should be visible to user 
    Returns:
        video_name: string with video name
        video_path: complete path of processed video
        video_out_path: complete path of output video
        file_out_path: complete path of text output file
    """
    qfd = QFileDialog()
    if file_type == "All Files":
        type_filter = "All Files (*)"
    else:
        type_filter = file_type + " (*." + file_type + ")"
    video_path, _ = QFileDialog.getOpenFileName(qfd, title, "", type_filter)
    video_name = video_path.split("/")[-1].split(".")[0]
    video_format = video_path.split("/")[-1].split(".")[1]
    _, video_out_path, file_out_path = get_outputs_paths(
        video_name, video_format, neural_network)
    return video_name, video_path, video_out_path, file_out_path
    def load_challenge_prompt(self, filename=None):
        """
        Loads the challenge data from a json file.

        :filename: pathname to the challenge that was previously open.
        :returns: None
        """
        if not filename:
            filename = QFileDialog().getOpenFileName(
                self, 'Load challenge list', self.exportPath,
                'Anime Challenge List Object(*.aclo)')[0]
        if not filename:
            return
        # Open the file or show error in case of failure
        try:
            with open(filename, 'rb') as f:
                savedata = json.load(f)
        except FileNotFoundError:
            if filename == PREVIOUS_SESSION:
                return
            else:
                QMessageBox.warning(self, 'Warning', "Couldn't find file!")
                return
        self.load_challenge_data(savedata)
Exemple #30
0
    def show_open_dialog(self, directory=False):
        fip = FileIconProvider()
        self.dialog = QFileDialog(self)
        self.dialog.setIconProvider(fip)
        self.dialog.setDirectory(FileOperator.RECENT_PATH)
        self.dialog.setWindowTitle("Open Folder")
        if directory:
            self.dialog.setFileMode(QFileDialog.Directory)
        else:
            self.dialog.setFileMode(QFileDialog.ExistingFiles)
            self.dialog.setNameFilter(
                "All files (*);;Complex (*.complex);;Complex16 unsigned (*.complex16u);;Complex16 signed (*.complex16s);;Wave (*.wav);;Protocols (*.proto.xml *.proto);;"
                "Fuzzprofiles (*.fuzz.xml *.fuzz);;Plain bits (*.txt);;Tar Archives (*.tar *.tar.gz *.tar.bz2);;Zip Archives (*.zip)")

        self.dialog.setOptions(QFileDialog.DontResolveSymlinks)
        self.dialog.setViewMode(QFileDialog.Detail)

        if self.dialog.exec_():
            try:
                file_names = self.dialog.selectedFiles()
                folders = [folder for folder in file_names if os.path.isdir(folder)]

                if len(folders) > 0:
                    folder = folders[0]
                    for f in self.signal_tab_controller.signal_frames:
                        self.close_signal_frame(f)

                    self.project_manager.set_project_folder(folder)
                else:
                    self.setCursor(Qt.WaitCursor)
                    file_names = FileOperator.uncompress_archives(file_names, QDir.tempPath())
                    self.add_files(file_names)
                    self.unsetCursor()
            except Exception as e:
                Errors.generic_error(self.tr("Failed to open"), str(e), traceback.format_exc())
                self.unsetCursor()