예제 #1
0
 def saveFileDialog(self):
     caption = '%s - Choose File' % __appname__
     filters = 'Label files (*%s)' % LabelFile.suffix
     if self.output_dir:
         dlg = QtWidgets.QFileDialog(self, caption, self.output_dir,
                                     filters)
     else:
         dlg = QtWidgets.QFileDialog(self, caption, self.currentPath(),
                                     filters)
     dlg.setDefaultSuffix(LabelFile.suffix[1:])
     dlg.setAcceptMode(QtWidgets.QFileDialog.AcceptSave)
     dlg.setOption(QtWidgets.QFileDialog.DontConfirmOverwrite, False)
     dlg.setOption(QtWidgets.QFileDialog.DontUseNativeDialog, False)
     basename = osp.basename(osp.splitext(self.filename)[0])
     if self.output_dir:
         default_labelfile_name = osp.join(self.output_dir,
                                           basename + LabelFile.suffix)
     else:
         default_labelfile_name = osp.join(self.currentPath(),
                                           basename + LabelFile.suffix)
     filename = dlg.getSaveFileName(self, 'Choose File',
                                    default_labelfile_name,
                                    'Label files (*%s)' % LabelFile.suffix)
     filename = str(filename[0])
     return filename
예제 #2
0
def selectFiles(filter='*.*', title='Select', defaultPath=None):
    filedialog = QtWidgets.QFileDialog()
    filedialog.setFileMode(QtWidgets.QFileDialog.FileMode.AnyFile)
    filedialog.setNameFilter(filter)

    if not defaultPath is None:
        defaultPath = Path(defaultPath)

        if defaultPath.is_file():
            defaultDir = defaultPath.parent
            defaultFile = defaultPath.name

        elif defaultPath.is_dir():
            defaultDir = defaultPath
            defaultFile = None
    else:
        defaultDir = None
        defaultFile = None

    if not defaultDir is None:
        filedialog.setDirectory(str(defaultDir))

    if not defaultFile is None:
        filedialog.selectFile(str(defaultFile))

    filedialog.setWindowTitle(title)

    #filedialog.setAcceptMode(QtWidgets.QFileDialog.AcceptOpen)

    for btn in filedialog.findChildren(QtWidgets.QPushButton):
        if btn.text() == "&Open":
            btn.setText("Select")

    filedialog.exec_()
    return filedialog.selectedFiles()
예제 #3
0
 def save_recordongs(self):
     # set the directory
     self.dir = QtW.QFileDialog(self)
     self.dir.setFileMode(QtW.QFileDialog.DirectoryOnly)
     self.save_dir = QtW.QFileDialog.getExistingDirectory(self.dir)
     self.dir_rec_lineEdit.setText(self.save_dir)
     self.parent_path = Path(self.save_dir)
예제 #4
0
    def saveLabel(self, saveAs=False, savePath=None):
        if not self.controller:
            return
        if self.controller.image is None:
            return
        self.completeLastMask()
        if not savePath:  # 参数没传存到哪
            if not saveAs and self.outputDir is not None:
                # 指定了标签文件夹,而且不是另存为
                savePath = osp.join(
                    self.outputDir,
                    osp.basename(self.imagePath).split(".")[0] + ".png")
            else:
                filters = self.tr("Label files (*.png)")
                dlg = QtWidgets.QFileDialog(self, "保存标签文件路径",
                                            osp.dirname(self.imagePath),
                                            filters)
                dlg.setDefaultSuffix("png")
                dlg.setAcceptMode(QtWidgets.QFileDialog.AcceptSave)
                dlg.setOption(QtWidgets.QFileDialog.DontConfirmOverwrite,
                              False)
                dlg.setOption(QtWidgets.QFileDialog.DontUseNativeDialog, False)
                savePath, _ = dlg.getSaveFileName(
                    self,
                    self.tr("选择标签文件保存路径"),
                    osp.basename(self.imagePath).split(".")[0] + ".png",
                )
        if (savePath is None or len(savePath) == 0
                or not osp.exists(osp.dirname(savePath))):
            return

        cv2.imwrite(savePath, self.controller.result_mask)
        self.statusbar.showMessage(f"标签成功保存至 {savePath}")
예제 #5
0
파일: svg.py 프로젝트: DASH7070/djangogirls
def save_svg(string, parent=None):
    """ Prompts the user to save an SVG document to disk.

    Parameters
    ----------
    string : basestring
        A Python string containing a SVG document.

    parent : QWidget, optional
        The parent to use for the file dialog.

    Returns
    -------
    The name of the file to which the document was saved, or None if the save
    was cancelled.
    """
    if isinstance(string, unicode_type):
        string = string.encode('utf-8')

    dialog = QtWidgets.QFileDialog(parent, 'Save SVG Document')
    dialog.setAcceptMode(QtWidgets.QFileDialog.AcceptSave)
    dialog.setDefaultSuffix('svg')
    dialog.setNameFilter('SVG document (*.svg)')
    if dialog.exec_():
        filename = dialog.selectedFiles()[0]
        f = open(filename, 'wb')
        try:
            f.write(string)
        finally:
            f.close()
        return filename
    return None
예제 #6
0
파일: utils.py 프로젝트: rth/ViTables
def getFileSelector(parent, caption, dfilter, filepath='', settings=None):
    """Raise a customised file selector dialog.

    :Parameters:

    - `parent`: the parent widget
    - `caption`: the dialog caption
    - `dfilter`: filters used to display files and folders
    - `filepath`: the filepath initially selected
    - `settings`: dictionary with keys `label` (Accept button text),
        `history` (file selector history) , `accept_mode` and `file_mode`
    """

    file_selector = QtWidgets.QFileDialog(parent, caption, '', dfilter)
    # Misc. setup
    file_selector.setDirectory(settings['history'][-1])
    file_selector.setAcceptMode(settings['accept_mode'])
    if settings['accept_mode'] == QtWidgets.QFileDialog.AcceptSave:
        file_selector.setOption(QFileDialog.DontConfirmOverwrite)
    file_selector.setFileMode(settings['file_mode'])
    file_selector.setHistory(settings['history'])
    if filepath:
        file_selector.selectFile(filepath)
    if settings['label'] != '':
        file_selector.setLabelText(
            QtWidgets.QFileDialog.Accept, settings['label'])

    # Uncomment next line if you want native dialogs. Removing the comment
    # comes at the price of an annoying KDE warning in your console. See the
    # thread "A dire warning message" (July, 2011) in the pyQt4 mailing list
    # for details.
    # file_selector.setOption(QtWidgets.QFileDialog.DontUseNativeDialog)
    return file_selector
 def set_multi_d_acq_dir(self):
     # set the directory
     self.dir = QtW.QFileDialog(self)
     self.dir.setFileMode(QtW.QFileDialog.DirectoryOnly)
     self.save_dir = QtW.QFileDialog.getExistingDirectory(self.dir)
     self.dir_lineEdit.setText(self.save_dir)
     self.parent_path = Path(self.save_dir)
예제 #8
0
파일: viewer.py 프로젝트: kuan-li/pydiq
 def open_directory(self):
     dialog = QtWidgets.QFileDialog(self)
     dialog.setFileMode(QtWidgets.QFileDialog.DirectoryOnly)
     dialog.setViewMode(QtWidgets.QFileDialog.List)
     dialog.setOption(QtWidgets.QFileDialog.ShowDirsOnly, True)
     if dialog.exec_():
         directory = str(dialog.selectedFiles()[0])
         self.load_files(dicom_files_in_dir(directory))
예제 #9
0
 def select_directory(self, index=0):
     d = QtWidgets.QFileDialog(caption='Select data directory')
     d.setFileMode(QFileDialog.Directory)
     if d.exec():
         datadir = d.selectedFiles()[0]
         self.set_data_directory(datadir, index)
         print('update logs')
         self.update_logs()
예제 #10
0
 def file_dialog(self):  # TODO make this emit a signal
     dialog = QtWidgets.QFileDialog()
     dialog.setFileMode(QtWidgets.QFileDialog.DirectoryOnly)
     dialog.setDirectory(os.path.split(self.folder)[0])
     if dialog.exec_():
         dirname = dialog.selectedFiles()
         self.line_edit_folder.setText(dirname[0])
         self.folder = dirname[0]
         self.search_vectors()
예제 #11
0
    def mousePressEvent(self, e):
        self.__logger.info("mousePressEvent %s", e)
        dlg = QtWidgets.QFileDialog()
        if self.__mode is not None:
            dlg.setFileMode(QtWidgets.QFileDialog.Directory)

        if dlg.exec():
            text = dlg.selectedFiles()[0]
            self.setText(text)
예제 #12
0
 def selectDirectory(self):
     from qtpy.QtWidgets import QFileDialog
     d = QtWidgets.QFileDialog(caption='Select data directory')
     d.setFileMode(QFileDialog.Directory)
     if d.exec():
         datadir = d.selectedFiles()[0]
         self.setDatadir(datadir)
         print('update logs')
         self.updateLogs()
예제 #13
0
 def file_dialog(self, button_name):
     dialog = QtWidgets.QFileDialog()
     dialog.setFileMode(QtWidgets.QFileDialog.DirectoryOnly)
     dialog.setDirectory(self.default_folder)
     if dialog.exec_():
         dirname = dialog.selectedFiles()
         text_field = self.objects[button_name[:-7]]["object"]
         text_field.setText(dirname[0])
         self.default_folder = os.path.split(dirname[0])[0]
     self.update_dirs()
예제 #14
0
def get_filedialog(parent=None):
    try:
        # mainwin = QtWidgets.qApp.findChild(
        #     QtWidgets.QMainWindow,  'gsdview-mainwin')
        mainwin = get_mainwin()
        dialog = mainwin.filedialog
    except AttributeError:
        _log.debug('unable to find the GDSView main window widget')
        dialog = QtWidgets.QFileDialog(parent)
    return dialog
예제 #15
0
파일: iris.py 프로젝트: sjyu1988/glue-solar
def pick_directory(caption):
    dialog = QtWidgets.QFileDialog(caption=caption)
    dialog.setFileMode(QtWidgets.QFileDialog.Directory)

    directory = dialog.exec_()

    if directory == QtWidgets.QDialog.Rejected:
        return []

    directory = dialog.selectedFiles()
    return directory[0]
예제 #16
0
 def file_dialog(self):
     # self.dialog = FileDialog_advanced()
     # self.dialog.files_opened.connect(partial(self.find_files, source=self._fromFileDialog))
     dialog = QtWidgets.QFileDialog()
     dialog.setFileMode(QtWidgets.QFileDialog.DirectoryOnly)
     dialog.setDirectory(os.path.split(self.folder)[0])
     if dialog.exec_():
         dirname = dialog.selectedFiles()
         print(dirname)
         self.select_folder = dirname[0]
         self.find_files(source=self._fromFileDialog)
예제 #17
0
 def file_dialog(self):
     dialog = QtWidgets.QFileDialog()
     dialog.setFileMode(self.type)
     dialog.setDirectory(os.path.split(self.files)[0])
     if dialog.exec_():
         if self.type == QtWidgets.QFileDialog.ExistingFile:
             self.files = dialog.selectedFiles()[0]
         else:
             self.files = dialog.selectedFiles()
         self.line_edit_folder.setText(str(self.files)) # This wrong?
         self.fileSeleted.emit(True)
예제 #18
0
 def _save_image(self, name, format='PNG'):
     """ Shows a save dialog for the ImageResource with 'name'.
     """
     dialog = QtWidgets.QFileDialog(self._control, 'Save Image')
     dialog.setAcceptMode(QtWidgets.QFileDialog.AcceptSave)
     dialog.setDefaultSuffix(format.lower())
     dialog.setNameFilter('%s file (*.%s)' % (format, format.lower()))
     if dialog.exec_():
         filename = dialog.selectedFiles()[0]
         image = self._get_image(name)
         image.save(filename, format)
예제 #19
0
 def select_work_path(self):
     dirname = Path(self.work_dir.text())
     if not dirname.exists():
         dirname = Path()
     dialog = QtWidgets.QFileDialog()
     dialog.setFileMode(QtWidgets.QFileDialog.DirectoryOnly)
     dialog.setOption(QtWidgets.QFileDialog.ShowDirsOnly)
     work_path = dialog.getExistingDirectory(directory=str(dirname),
                                             caption="Work directory")
     if not work_path:
         return
     self.work_dir.setText(work_path)
예제 #20
0
 def __init__(self, parent=None):
     self._fd = QtWidgets.QFileDialog(parent)
     from glue.config import data_factory
     self.filters = [(f, self._filter(f)) for f in data_factory.members
                     if not f.deprecated]
     self.setNameFilter()
     self._fd.setFileMode(QtWidgets.QFileDialog.ExistingFiles)
     try:
         self._fd.setOption(
             QtWidgets.QFileDialog.Option.HideNameFilterDetails, True)
     except AttributeError:  # HideNameFilterDetails not present
         pass
예제 #21
0
    def save_image(self):
        duplicate = self.duplicateSpinBox.value()
        clock = datetime.now().strftime('%y%m%d_%H%M%S')
        img_type = self.image_typeComboBox.currentText()
        if duplicate > 0:
            # get save direction
            file_dialog = QtWidgets.QFileDialog(self,
                                                "Select saving directory: ")
            file_dialog.setOption(QtWidgets.QFileDialog.DontUseNativeDialog)
            file_dialog.setAcceptMode(1)
            file_dialog.setFileMode(2)
            if file_dialog.exec():
                file_path = file_dialog.selectedFiles()[0]

                for i in range(duplicate):
                    # get image name
                    img_name = file_path + '/' + clock + '_' + str(i +
                                                                   1) + '.png'

                    if img_type == 'Binary Image (Particles only)':
                        if i != 0:
                            del (self.database['binary_image'])
                        try:
                            # save particle binary image
                            imgio.imsave(img_name,
                                         self.database['binary_image']['data'])

                        except:
                            # generate new image file
                            self.generate_images()
                            imgio.imsave(img_name,
                                         self.database['binary_image']['data'])

                        # remove saved data

                    elif img_type == 'Particle+Noise':
                        if i != 0:
                            del (self.database['particle_bkg_image'])
                        try:
                            # save particle with background noise
                            imgio.imsave(
                                img_name,
                                self.database['particle_bkg_image']['data'])

                        except:
                            # generate new image file
                            self.generate_images()
                            imgio.imsave(
                                img_name,
                                self.database['particle_bkg_image']['data'])

        self.change_image()
예제 #22
0
파일: core.py 프로젝트: Cadair/glue-solar
def pick_directory(caption):
    """
    Pick the directory to load SunPy map files from.

    """
    dialog = QtWidgets.QFileDialog(caption=caption)
    dialog.setFileMode(QtWidgets.QFileDialog.Directory)

    directory = dialog.exec_()

    if directory == QtWidgets.QDialog.Rejected:
        return []

    directory = dialog.selectedFiles()
    return directory[0]
예제 #23
0
 def saveLabelList(self):
     if len(self.labelList) == 0:
         self.warn("没有需要保存的标签", "请先添加标签之后再进行保存")
         return
     filters = self.tr("标签配置文件 (*.txt)")
     dlg = QtWidgets.QFileDialog(self, "保存标签配置文件", ".", filters)
     dlg.setDefaultSuffix("txt")
     dlg.setAcceptMode(QtWidgets.QFileDialog.AcceptSave)
     dlg.setOption(QtWidgets.QFileDialog.DontConfirmOverwrite, False)
     dlg.setOption(QtWidgets.QFileDialog.DontUseNativeDialog, False)
     savePath, _ = dlg.getSaveFileName(
         self,
         self.tr("%s - 选择保存标签配置文件路径") % __APPNAME__, ".", filters)
     self.labelList.saveLabel(savePath)
     self.settings.setValue("label_list_file", savePath)
예제 #24
0
    def export_image(self):
        # file_name, _ = QtWidgets.QFileDialog.getSaveFileName(
        #     self,
        #     "Save file",
        #     os.path.expanduser("~/dicom-export.png"),
        #     "PNG images (*.png)"
        # )
        # if file_name:
        #     self.pix_label._image.save(file_name)

        # box = QtWidgets.QMessageBox()
        # box.setWindowTitle("Exporting")
        # box.setWindowIcon(QtGui.QIcon('icon.png'))
        # box.setIcon(QtWidgets.QMessageBox.Warning)
        # box.setText("Processing...please wait")
        # msg = box.exec_()

        dialog = QtWidgets.QFileDialog(self)
        dialog.setFileMode(QtWidgets.QFileDialog.DirectoryOnly)
        dialog.setViewMode(QtWidgets.QFileDialog.List)
        dialog.setOption(QtWidgets.QFileDialog.ShowDirsOnly, True)
        if dialog.exec_():
            directory = str(dialog.selectedFiles()[0])

            # Loading dialog.
            dlg = QtWidgets.QDialog(None, QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
            dlg.setWindowTitle("Working...")
            dlg.setWindowIcon(QtGui.QIcon('icon.png'))
            dlg.resize(200, 150)
            dlg.show()

            # start_time = time.perf_counter()
            dicom_to_bmp(directory, self.DESIRED_SERIES)
            grid_images_to_folders(self.HEIGHT_IN_PIXELS, self.WIDTH_IN_PIXELS, self.IMAGE_ROWS, self.IMAGE_COLS)
            # end_time = time.perf_counter()
            # print("Exporting performance (QMessageBox vs. QDialog): ", end_time - start_time)

            dlg.close()
            box = QtWidgets.QMessageBox()
            box.setWindowTitle("Success")
            box.setWindowIcon(QtGui.QIcon('icon.png'))
            box.setIcon(QtWidgets.QMessageBox.Information)
            box.setText("Export complete!")
            msg = box.exec_()

            # No exceptions to this point == successful export.
            self.exportRan = True
예제 #25
0
파일: app.py 프로젝트: jacke121/labelme
 def saveFileDialog(self):
     caption = '%s - Choose File' % __appname__
     filters = 'Label files (*%s)' % LabelFile.suffix
     dlg = QtWidgets.QFileDialog(self, caption, self.currentPath()+"/../json", filters)
     dlg.setDefaultSuffix(LabelFile.suffix[1:])
     dlg.setAcceptMode(QtWidgets.QFileDialog.AcceptSave)
     dlg.setOption(QtWidgets.QFileDialog.DontConfirmOverwrite, False)
     dlg.setOption(QtWidgets.QFileDialog.DontUseNativeDialog, False)
     basename =os.path.basename(os.path.splitext(self.filename)[0])
     default_labelfile_name = os.path.join(self.currentPath()+"/../json", basename + LabelFile.suffix)
     filename = dlg.getSaveFileName(
         self, 'Choose File', default_labelfile_name,
         'Label files (*%s)' % LabelFile.suffix)
     if QT5:
         filename, _ = filename
     filename = str(filename)
     return filename
    def loadimage(self):
        """
        Select an image from disk.
        """
        fd = qt.QFileDialog()
        filename = fd.getOpenFileName(self, 'Select device image',
                                      os.getcwd(),
                                      "Image files(*.jpg *.png *.jpeg)")
        self.filename = filename[0]
        self.pixmap = gui.QPixmap(filename[0])
        width = self.pixmap.width()
        height = self.pixmap.height()

        self.imageCanvas.setPixmap(self.pixmap)

        # fix the image scale, so that the pixel values of the mouse are
        # unambiguous
        self.imageCanvas.setMaximumWidth(width)
        self.imageCanvas.setMaximumHeight(height)
예제 #27
0
    def open_directory(self):
        dialog = QtWidgets.QFileDialog(self)
        dialog.setFileMode(QtWidgets.QFileDialog.DirectoryOnly)
        dialog.setViewMode(QtWidgets.QFileDialog.List)
        dialog.setOption(QtWidgets.QFileDialog.ShowDirsOnly, True)
        if dialog.exec_():
            directory = str(dialog.selectedFiles()[0])
            # start_time = time.perf_counter()
            self.load_files(dicom_files_in_dir(directory))
            # end_time = time.perf_counter()
            # print("Loading performance (individual DICOM folders vs. parent folder): ", end_time - start_time)

            # Error handling for incorrect DICOM directories.
            if self.file_list.count() < 1:
                box = QtWidgets.QMessageBox()
                box.setWindowTitle("Error")
                box.setWindowIcon(QtGui.QIcon('icon.png'))
                box.setIcon(QtWidgets.QMessageBox.Critical)
                box.setText("Invalid DICOM directory!")
                msg = box.exec_()
예제 #28
0
    def openLoadDialog(self):
        # opening last directory von sttings
        self._open_dir = self.settings.value("_open_dir")
        if self._open_dir is None:
            self._open_dir = os.getcwd()

        dialog = QtWidgets.QFileDialog()
        dialog.setDirectory(self._open_dir)
        filename = dialog.getOpenFileName(self, "Open Positions", "",
                                          "Position Files (*.tif)")
        if isinstance(filename, tuple):
            filename = str(filename[0])
        else:
            filename = str(filename)
        if os.path.exists(filename):
            # noting directory to q settings
            self._open_dir = os.path.split(filename)[0]
            self.settings.setValue("_open_dir", self._open_dir)
            self.settings.sync()
            self.loadFile(filename)
예제 #29
0
    def __processClientDirectory(self, title, finishCallback, preCallback,
                                 p4command, *p4args):
        fileDialog = QtWidgets.QFileDialog(interop.main_parent_window(), title,
                                           str(self.p4.cwd))

        def onEnter(*args):
            if not Utils.isPathInClientRoot(self.p4, args[0]):
                fileDialog.setDirectory(self.p4.cwd)

        def onComplete(*args):
            selectedFiles = []
            error = None

            if preCallback:
                preCallback(fileDialog.selectedFiles())

            # Only add files if we didn't cancel
            if args[0] == 1:
                for file in fileDialog.selectedFiles():
                    if Utils.isPathInClientRoot(self.p4, file):
                        try:
                            Utils.p4Logger().info(p4command(p4args, file))
                            selectedFiles.append(file)
                        except P4Exception as e:
                            Utils.p4Logger().warning(e)
                            error = e
                    else:
                        Utils.p4Logger().warning(
                            "{0} is not in client root.".format(file))

            fileDialog.deleteLater()
            if finishCallback:
                finishCallback(selectedFiles, error)

        fileDialog.setFileMode(QtWidgets.QFileDialog.DirectoryOnly)
        fileDialog.directoryEntered.connect(onEnter)
        fileDialog.finished.connect(onComplete)
        fileDialog.show()
예제 #30
0
 def open_file(self):
     """Open a new image file from a file explorer"""
     file_name = QtWidgets.QFileDialog()
     file_name.setFileMode(QtWidgets.QFileDialog.ExistingFiles)
     new_files = file_name.getOpenFileNames(self)[0]
     if new_files:
         if self.image_set.current_image:
             self.save_parameters()
         first_new_image = len(self.image_set.images)
         self.image_set.append(new_files, first_new_image)
         # If there are no new images, don't continue
         if first_new_image == len(self.image_set.images):
             warnings.warn("The image(s) chosen are not PDS compatible")
             return
         self.next_image_btn.setEnabled(
             self.image_set.next_prev_enabled)
         self.previous_image_btn.setEnabled(
             self.image_set.next_prev_enabled)
         self._display_image()
     else:
         # integrate with logger
         print("No file selected!")
         return