Skip to content
Snippets Groups Projects
DialogFileBrowser.py 3.89 KiB
Newer Older
  • Learn to ignore specific revisions
  • lpbsscientist's avatar
    lpbsscientist committed
    # -*- coding: utf-8 -*-
    """
    Created on Tue Nov 19 17:38:58 2019
    """
    
    from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QVBoxLayout, QSizePolicy, QMessageBox, QWidget, QPushButton, QShortcut, QComboBox, QDialog, QDialogButtonBox, QInputDialog, QLineEdit, QFormLayout, QFileDialog, QLabel
    from PyQt5 import QtGui
    #from PyQt5.QtGui import QIcon, QKeySequence
    from PyQt5.QtCore import pyqtSignal, QObject, Qt
    #import PyQt package, allows for GUI interactions
    
    class FileBrowser(QDialog):
    
        def __init__(self, *args, **kwargs):
            super(FileBrowser, self).__init__(*args, **kwargs)
            
            self.setWindowTitle("Open Files")
            self.setGeometry(100,100, 800,200)
            
            
    
    lpbsscientist's avatar
    lpbsscientist committed
            self.button_opennd2 = QPushButton('Open image file')
    
    lpbsscientist's avatar
    lpbsscientist committed
            self.button_opennd2.setEnabled(True)
            self.button_opennd2.clicked.connect(self.getnd2path)
    
            self.button_opennd2.setToolTip("Browse for an image file")
    
    lpbsscientist's avatar
    lpbsscientist committed
            self.button_opennd2.setMaximumWidth(150)
            
    
    #        self.button_openfolder = QPushButton('Open image folder')
    #        self.button_openfolder.setEnabled(True)
    #        self.button_openfolder.clicked.connect(self.getfolder)
    #        self.button_openfolder.setToolTip("Browse for folder with images")
    #        self.button_openfolder.setMaximumWidth(150)
    
    lpbsscientist's avatar
    lpbsscientist committed
            self.button_openhdf = QPushButton('Open mask file')
    
    lpbsscientist's avatar
    lpbsscientist committed
            self.button_openhdf.setEnabled(True)
            self.button_openhdf.clicked.connect(self.gethdfpath)
    
    lpbsscientist's avatar
    lpbsscientist committed
            self.button_openhdf.setToolTip("Browse for a mask file")
    
    lpbsscientist's avatar
    lpbsscientist committed
            self.button_openhdf.setMaximumWidth(150)
            
            self.newhdfentry = QLineEdit()
    #        self.newhdfentry(Qt.AlignLeft)
    
    lpbsscientist's avatar
    lpbsscientist committed
            self.newhdfentry.setText("newmaskfile")
    
    lpbsscientist's avatar
    lpbsscientist committed
    
    
    
            self.nd2name = ''
            self.hdfname = ''
    #        
            flo = QFormLayout()
    #        flo.addRow('Enter Cell value 1 (integer):', self.entry1)
                    
            
            QBtn = QDialogButtonBox.Ok | QDialogButtonBox.Cancel
            
            self.buttonBox = QDialogButtonBox(QBtn)
            self.buttonBox.accepted.connect(self.accept)
            self.buttonBox.rejected.connect(self.reject)
    
    
            self.labelnd2 = QLabel()
    
    lpbsscientist's avatar
    lpbsscientist committed
            self.labelnd2.setText('No image file (.nd2, .tif, .tiff) selected')
    
    lpbsscientist's avatar
    lpbsscientist committed
            
            self.labelhdf = QLabel()
    
    lpbsscientist's avatar
    lpbsscientist committed
            self.labelhdf.setText('No mask file (.h5, .tif, .tiff) selected')
    
            
            self.labelfolder = QLabel()
            self.labelfolder.setText('No folder selected')
            
    
    lpbsscientist's avatar
    lpbsscientist committed
            flo.addRow(self.labelnd2, self.button_opennd2)
    
    #        flo.addRow(self.labelfolder, self.button_openfolder)
    
    lpbsscientist's avatar
    lpbsscientist committed
            flo.addRow(self.labelhdf, self.button_openhdf)
    #        flo.addWidget(self.button_openhdf)
            flo.addRow('If no hdf file already exists, give a name to create a new file', self.newhdfentry)
            
            flo.addWidget(self.buttonBox)
           
            self.setLayout(flo)
            
            
            
    
        def getnd2path(self):
    
    #        self.nd2name,_ = QFileDialog.getOpenFileName(self, 'Open image file','', 'Image files (*.nd2 *.tif *.tiff)')
    
    lpbsscientist's avatar
    lpbsscientist committed
    #      print(self.nd2name)
    #      print(self.nd2name)
    
            
            dlg = QFileDialog(self, 'Open image file or folder')
            dlg.setProxyModel(None)
            if dlg.exec():
                self.nd2name = dlg.selectedFiles()[0]            
            else:
                return
    
    
    lpbsscientist's avatar
    lpbsscientist committed
            if self.nd2name != '':
                self.labelnd2.setText(self.nd2name)
    
    lpbsscientist's avatar
    lpbsscientist committed
          
        def gethdfpath(self):
    
    lpbsscientist's avatar
    lpbsscientist committed
            self.hdfname,_ = QFileDialog.getOpenFileName(self,'Open mask file','', 'Mask files (*.h5 *.tif *.tiff)')
            if self.hdfname != '':
                self.labelhdf.setText(self.hdfname)
                self.newhdfentry.setText("")
    
    #    def getfolder(self):
    #        self.nd2name = QFileDialog.getExistingDirectory(self, ("Select Image Folder"))
    #        if self.nd2name != '':
    #            self.labelnd2.setText(self.nd2name)