class OrLogsListView(QListView): def __init__(self, parent=None): super(OrLogsListView, self).__init__(parent) self.model = QFileSystemModel() self.model.sort(3, Qt.DescendingOrder) self.model.setFilter(QDir.Files) self.setModel(self.model) def mouseDoubleClickEvent(self, event): """method override""" QListView.mouseDoubleClickEvent(self, event) self.clicked() def getSelectedPath(self): """Return selected filename""" index = self.currentIndex() if index: return os.path.normpath(self.model.filePath(index)) def clicked(self): fname = self.getSelectedPath() if fname: self.open(fname) def open(self, fname): QDesktopServices.openUrl(QUrl('file:///' + fname)) def setup(self, wdir='.'): os.makedirs(wdir, exist_ok=True) self.model.setRootPath(wdir) self.setRootIndex(self.model.index(wdir))
def update_dirmodel(self, path): dirmodel = QFileSystemModel() dirmodel.setFilter(QDir.NoDotAndDotDot | QDir.AllEntries) filefilter = ["*.zip"] dirmodel.setNameFilters(filefilter) dirmodel.sort(0, Qt.AscendingOrder) self.file_treeView.setModel(dirmodel) self.file_treeView.header().setResizeMode(3) self.file_treeView.model().setRootPath(path) self.file_treeView.setRootIndex(self.file_treeView.model().index(path))