예제 #1
0
    def initUI(self):
        vbox = QtWidgets.QVBoxLayout()
        self.setLayout(vbox)
        
        hbox = QtWidgets.QHBoxLayout()
        vbox.addLayout(hbox)
        
        self.treeView = QtWidgets.QTreeView(self)
        hbox.addWidget(self.treeView)       
        
        #self.treeView.setGeometry(0,0, 600, 800)
        self.dirModel = QtWidgets.QFileSystemModel()
        self.path = "C:\\"
        self.dirModel.setRootPath(self.path)
        self.dirModel.setFilter(QtCore.QDir.AllDirs | QtCore.QDir.Dirs | QtCore.QDir.NoDotAndDotDot | QtCore.QDir.Hidden)
        self.treeView.setModel(self.dirModel)
        #self.treeView.setRootIndex(self.dirModel.index(self.path))
        #self.treeView.expandAll()
        self.treeView.clicked.connect(self.on_treeView_clicked)

        #self.listView = QtWidgets.QListView(self)
        #self.listView = QtWidgets.QTreeView(self)
        self.listView = QtWidgets.QTableView(self)
        hbox.addWidget(self.listView)
        
        self.fileModel = QtWidgets.QFileSystemModel()
        #self.fileModel.setFilter(QtCore.QDir.Files | QtCore.QDir.Dirs | QtCore.QDir.Hidden)
        self.fileModel.setFilter(QtCore.QDir.Files | QtCore.QDir.Hidden)
        self.listView.setModel(self.fileModel)

        #self.setGeometry(300, 300, 600, 800)
        self.setWindowTitle('Select File')        
예제 #2
0
    def __init__(self, parent=None):
        QtWidgets.QWidget.__init__(self, parent)
        self.settings = QtCore.QSettings("rgerum", "net browser")

        # self.setCentralWidget(self.frame)
        #hlayout = QtWidgets.QVBoxLayout(self)
        """ browser"""
        self.dirmodel = QtWidgets.QFileSystemModel()
        # Don't show files, just folders
        # self.dirmodel.setFilter(QtCore.QDir.NoDotAndDotDot | QtCore.QDir.AllDirs)
        self.dirmodel.setNameFilters(["*.csv"])
        self.dirmodel.setNameFilterDisables(False)
        self.folder_view = self  #QtWidgets.QTreeView(parent=self)
        self.folder_view.setModel(self.dirmodel)
        self.folder_view.activated[QtCore.QModelIndex].connect(self.clicked)
        self.folder_view.selectionChanged = self.clicked
        self.folder_view.setSelectionMode(self.ExtendedSelection)
        # self.folder_view.selected[QtCore.QModelIndex].connect(self.clicked)

        # Don't show columns for size, file type, and last modified
        self.folder_view.setHeaderHidden(True)
        self.folder_view.hideColumn(1)
        self.folder_view.hideColumn(2)
        self.folder_view.hideColumn(3)

        self.selectionModel = self.folder_view.selectionModel()

        #hlayout.addWidget(self.folder_view)

        if self.settings.value("browser/path"):
            self.set_path(self.settings.value("browser/path"))
        self.set_path(
            r"\\131.188.117.96\biophysDS\emirzahossein\microfluidic cell rhemeter data\microscope_1\august_2020\2020_08_21_alginate2%_NIH_xposition_1"
        )
예제 #3
0
    def __init__(self, parent=None):
        QtWidgets.QWidget.__init__(self, parent)
        self.settings = QtCore.QSettings("fabrylab", "flowcytometer browser")

        # self.setCentralWidget(self.frame)
        #hlayout = QtWidgets.QVBoxLayout(self)
        """ browser"""
        self.dirmodel = QtWidgets.QFileSystemModel()
        # Don't show files, just folders
        # self.dirmodel.setFilter(QtCore.QDir.NoDotAndDotDot | QtCore.QDir.AllDirs)
        self.dirmodel.setNameFilters(["*.tif"])
        self.dirmodel.setNameFilterDisables(False)
        self.folder_view = self  #QtWidgets.QTreeView(parent=self)
        self.folder_view.setModel(self.dirmodel)
        self.folder_view.activated[QtCore.QModelIndex].connect(self.clicked)
        # self.folder_view.selected[QtCore.QModelIndex].connect(self.clicked)

        # Don't show columns for size, file type, and last modified
        self.folder_view.setHeaderHidden(True)
        self.folder_view.hideColumn(1)
        self.folder_view.hideColumn(2)
        self.folder_view.hideColumn(3)

        self.selectionModel = self.folder_view.selectionModel()

        #hlayout.addWidget(self.folder_view)

        if self.settings.value("browser/path"):
            self.set_path(self.settings.value("browser/path"))
        else:
            self.set_path(r"\\131.188.117.96\biophysDS")

        self.setAcceptDrops(True)
예제 #4
0
    def setup(self):

        self.ui = load_qt_ui_file(sibling_path(__file__, "data_browser.ui"))
        self.ui.show()
        self.ui.raise_()

        self.views = OrderedDict()
        self.current_view = None

        self.settings.New('data_filename', dtype='file')
        self.settings.New('browse_dir', dtype='file', is_dir=True, initial='/')
        self.settings.New('file_filter', dtype=str, initial='*.*,')

        self.settings.data_filename.add_listener(self.on_change_data_filename)

        self.settings.New('auto_select_view', dtype=bool, initial=True)

        self.settings.New('view_name', dtype=str, initial='0', choices=('0', ))

        # UI Connections
        self.settings.data_filename.connect_to_browse_widgets(
            self.ui.data_filename_lineEdit,
            self.ui.data_filename_browse_pushButton)
        self.settings.browse_dir.connect_to_browse_widgets(
            self.ui.browse_dir_lineEdit, self.ui.browse_dir_browse_pushButton)
        self.settings.view_name.connect_bidir_to_widget(
            self.ui.view_name_comboBox)
        self.settings.file_filter.connect_bidir_to_widget(
            self.ui.file_filter_lineEdit)

        # file system tree
        self.fs_model = QtWidgets.QFileSystemModel()
        self.fs_model.setRootPath(QtCore.QDir.currentPath())
        self.ui.treeView.setModel(self.fs_model)
        self.ui.treeView.setIconSize(QtCore.QSize(16, 16))
        self.ui.treeView.setSortingEnabled(True)
        #for i in (1,2,3):
        #    self.ui.treeView.hideColumn(i)
        #print("="*80, self.ui.treeView.selectionModel())
        self.tree_selectionModel = self.ui.treeView.selectionModel()
        self.tree_selectionModel.selectionChanged.connect(
            self.on_treeview_selection_change)

        self.settings.browse_dir.add_listener(self.on_change_browse_dir)
        self.settings['browse_dir'] = os.getcwd()

        # set views

        self.load_view(FileInfoView(self))
        self.load_view(NPZView(self))

        self.settings.view_name.add_listener(self.on_change_view_name)
        self.settings['view_name'] = "file_info"

        self.settings.file_filter.add_listener(self.on_change_file_filter)

        #self.console_widget.show()
        self.ui.console_pushButton.clicked.connect(self.console_widget.show)
        self.ui.show()
예제 #5
0
    def __init__(self, parent=None):
        super().__init__(parent)
        layout = QtWidgets.QHBoxLayout(self)

        pal = self.palette()
        pal.setColor(QtGui.QPalette.Background, pal.color(QtGui.QPalette.Base))
        self.setPalette(pal)
        self.setAutoFillBackground(True)
        self.setFrameShape(self.StyledPanel)
        self.layout().setContentsMargins(4, 0, 0, 0)
        self.layout().setSpacing(0)

        # Edit presented path textually
        self.line_address = QtWidgets.QLineEdit(self)
        self.line_address.setFrame(False)
        self.line_address.hide()
        self.line_address.keyPressEvent_super = self.line_address.keyPressEvent
        self.line_address.keyPressEvent = self.line_address_keyPressEvent
        self.line_address.focusOutEvent = lambda e: self._cancel_edit()
        self.completer = QtWidgets.QCompleter(self)  # FIXME:
        # self.completer.setModel(QtCore.QStringListModel())
        fs_model = QtWidgets.QFileSystemModel(self.completer)
        fs_model.setRootPath("")
        fs_model.setFilter(QtCore.QDir.Dirs | QtCore.QDir.Drives
                           | QtCore.QDir.NoDotAndDotDot | QtCore.QDir.AllDirs)
        self.completer.setModel(fs_model)
        self.completer.setCaseSensitivity(Qt.CaseInsensitive)
        self.completer.activated.connect(self.set_path)
        self.line_address.setCompleter(self.completer)
        layout.addWidget(self.line_address)

        # Container for `btn_crumbs_hidden`, `crumbs_panel`, `switch_space`
        self.crumbs_container = QtWidgets.QWidget(self)
        crumbs_cont_layout = QtWidgets.QHBoxLayout(self.crumbs_container)
        crumbs_cont_layout.setContentsMargins(0, 0, 0, 0)
        crumbs_cont_layout.setSpacing(0)
        layout.addWidget(self.crumbs_container)

        # Hidden breadcrumbs menu button
        self.btn_crumbs_hidden = QtWidgets.QToolButton(self)
        self.btn_crumbs_hidden.setAutoRaise(True)
        self.btn_crumbs_hidden.setPopupMode(QtWidgets.QToolButton.InstantPopup)
        self.btn_crumbs_hidden.setArrowType(Qt.LeftArrow)
        self.btn_crumbs_hidden.setStyleSheet("QToolButton::menu-indicator {"
                                             "image: none;}")
        self.btn_crumbs_hidden.setMinimumSize(
            self.btn_crumbs_hidden.minimumSizeHint())
        self.btn_crumbs_hidden.hide()
        crumbs_cont_layout.addWidget(self.btn_crumbs_hidden)
        menu = QtWidgets.QMenu(self.btn_crumbs_hidden)  # FIXME:
        menu.aboutToShow.connect(self._hidden_crumbs_menu_show)
        self.btn_crumbs_hidden.setMenu(menu)

        # Container for breadcrumbs
        self.crumbs_panel = QtWidgets.QWidget(self)
        crumbs_layout = QtWidgets.QHBoxLayout(self.crumbs_panel)
        crumbs_layout.setContentsMargins(0, 0, 0, 0)
        crumbs_layout.setSpacing(0)
        crumbs_cont_layout.addWidget(self.crumbs_panel)

        # Clicking on empty space to the right puts the bar into edit mode
        self.switch_space = QtWidgets.QWidget(self)
        s_policy = self.switch_space.sizePolicy()
        s_policy.setHorizontalStretch(1)
        self.switch_space.setSizePolicy(s_policy)
        self.switch_space.mouseReleaseEvent = self.switch_space_mouse_up
        crumbs_cont_layout.addWidget(self.switch_space)

        self.btn_browse = QtWidgets.QToolButton(self)
        self.btn_browse.setAutoRaise(True)
        self.btn_browse.setText("...")
        self.btn_browse.setToolTip("Browse for folder")
        self.btn_browse.clicked.connect(self._browse_for_folder)
        layout.addWidget(self.btn_browse)

        self.setMaximumHeight(self.line_address.height())  # FIXME:

        self.first_visible, self.l_breadcrumbs = 0, None
        self.path_ = None
        self.set_path(Path())