本文整理汇总了Python中PyQt4.QtGui.QFileSystemModel.setNameFilters方法的典型用法代码示例。如果您正苦于以下问题:Python QFileSystemModel.setNameFilters方法的具体用法?Python QFileSystemModel.setNameFilters怎么用?Python QFileSystemModel.setNameFilters使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt4.QtGui.QFileSystemModel
的用法示例。
在下文中一共展示了QFileSystemModel.setNameFilters方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Explorer
# 需要导入模块: from PyQt4.QtGui import QFileSystemModel [as 别名]
# 或者: from PyQt4.QtGui.QFileSystemModel import setNameFilters [as 别名]
class Explorer(QTreeView):
def __init__(self, parent=None):
QTreeView.__init__(self)
self.header().setHidden(True)
self.setAnimated(True)
# Modelo
self.model = QFileSystemModel(self)
path = QDir.toNativeSeparators(QDir.homePath())
self.model.setRootPath(path)
self.setModel(self.model)
self.model.setNameFilters(["*.c", "*.h", "*.s"])
self.setRootIndex(QModelIndex(self.model.index(path)))
self.model.setNameFilterDisables(False)
# Se ocultan algunas columnas
self.hideColumn(1)
self.hideColumn(2)
self.hideColumn(3)
# Conexion
self.doubleClicked.connect(self._open_file)
Edis.load_lateral("explorer", self)
def _open_file(self, i):
if not self.model.isDir(i):
indice = self.model.index(i.row(), 0, i.parent())
archivo = self.model.filePath(indice)
principal = Edis.get_component("principal")
principal.open_file(archivo)
示例2: Explorador
# 需要导入模块: from PyQt4.QtGui import QFileSystemModel [as 别名]
# 或者: from PyQt4.QtGui.QFileSystemModel import setNameFilters [as 别名]
class Explorador(custom_dock.CustomDock):
def __init__(self, parent=None):
custom_dock.CustomDock.__init__(self)
self.explorador = QTreeView()
self.setWidget(self.explorador)
self.explorador.header().setHidden(True)
self.explorador.setAnimated(True)
# Modelo
self.modelo = QFileSystemModel(self.explorador)
path = QDir.toNativeSeparators(QDir.homePath())
self.modelo.setRootPath(path)
self.explorador.setModel(self.modelo)
self.modelo.setNameFilters(["*.c", "*.h", "*.s"])
self.explorador.setRootIndex(QModelIndex(self.modelo.index(path)))
self.modelo.setNameFilterDisables(False)
# Se ocultan algunas columnas
self.explorador.hideColumn(1)
self.explorador.hideColumn(2)
self.explorador.hideColumn(3)
# Conexion
self.explorador.doubleClicked.connect(self._abrir_archivo)
EDIS.cargar_lateral("explorador", self)
def _abrir_archivo(self, i):
if not self.modelo.isDir(i):
indice = self.modelo.index(i.row(), 0, i.parent())
archivo = self.modelo.filePath(indice)
principal = EDIS.componente("principal")
principal.abrir_archivo(archivo)
示例3: update_dirmodel
# 需要导入模块: from PyQt4.QtGui import QFileSystemModel [as 别名]
# 或者: from PyQt4.QtGui.QFileSystemModel import setNameFilters [as 别名]
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))
示例4: open_project
# 需要导入模块: from PyQt4.QtGui import QFileSystemModel [as 别名]
# 或者: from PyQt4.QtGui.QFileSystemModel import setNameFilters [as 别名]
def open_project(self, project):
project_path = project.path
qfsm = None # Should end up having a QFileSystemModel
if project_path not in self.__projects:
qfsm = QFileSystemModel()
project.model = qfsm
qfsm.setRootPath(project_path)
qfsm.setFilter(QDir.AllDirs | QDir.Files | QDir.NoDotAndDotDot)
# If set to true items that dont match are displayed disabled
qfsm.setNameFilterDisables(False)
pext = ["*{0}".format(x) for x in project.extensions]
logger.debug(pext)
qfsm.setNameFilters(pext)
self.__projects[project_path] = project
self.__check_files_for(project_path)
self.emit(SIGNAL("projectOpened(PyQt_PyObject)"), project)
else:
qfsm = self.__projects[project_path]
return qfsm
示例5: load_tree
# 需要导入模块: from PyQt4.QtGui import QFileSystemModel [as 别名]
# 或者: from PyQt4.QtGui.QFileSystemModel import setNameFilters [as 别名]
def load_tree(self, project):
"""Load the tree view on the right based on the project selected."""
qfsm = QFileSystemModel()
#FIXME it's not loading the proper folder, just the root /
qfsm.setRootPath(project.path)
qfsm.setFilter(QDir.AllDirs | QDir.NoDotAndDotDot)
qfsm.setNameFilterDisables(False)
pext = ["*{0}".format(x) for x in project.extensions]
qfsm.setNameFilters(pext)
self._tree.setModel(qfsm)
t_header = self._tree.header()
t_header.setHorizontalScrollMode(QAbstractItemView.ScrollPerPixel)
t_header.setResizeMode(0, QHeaderView.Stretch)
t_header.setStretchLastSection(False)
t_header.setClickable(True)
self._tree.hideColumn(1) # Size
self._tree.hideColumn(2) # Type
self._tree.hideColumn(3) # Modification date
示例6: LayerLoaderDialog
# 需要导入模块: from PyQt4.QtGui import QFileSystemModel [as 别名]
# 或者: from PyQt4.QtGui.QFileSystemModel import setNameFilters [as 别名]
class LayerLoaderDialog(QDialog, FORM_CLASS):
def __init__(self, parent=None):
"""Constructor."""
super(LayerLoaderDialog, self).__init__(parent)
self.setupUi(self)
self.completer = QCompleter(self)
self.fsmodel = QFileSystemModel(self.completer)
self.fsmodel.setNameFilters(['*.qlf'])
self.completer.setModel(self.fsmodel)
self.filename.setCompleter(self.completer)
self.searchdir.clicked.connect(self.opensearchform)
def opensearchform(self):
dn = QFileDialog.getOpenFileName(self, self.tr('Choose target directory for layers'), self.filename.text(), '*.qlf' )
if dn:
self.filename.setText(dn)
def set_target_directory(self, dn):
self.filename.setText(dn)
def layer(self):
return self.filename.text()
示例7: __init__
# 需要导入模块: from PyQt4.QtGui import QFileSystemModel [as 别名]
# 或者: from PyQt4.QtGui.QFileSystemModel import setNameFilters [as 别名]
def __init__(self, *args):
super(FileBrowser, self).__init__(*args)
layout = QVBoxLayout()
model = QFileSystemModel()
filters = ["*.jpg", "*.JPG", "*.jpeg", "*.JPEG","*.png","*.PNG"]
model.setNameFilters(filters)
self.directoryTree = QTreeView()
self.directoryTree.setModel(model)
self.directoryTree.currentChanged = self.currentChanged
self.directoryTree.setSortingEnabled(True)
self.directoryTree.sortByColumn(0, Qt.AscendingOrder)
self.fileList = QListWidget()
layout.addWidget(self.directoryTree)
self.setLayout(layout)
root = model.setRootPath(QDir.homePath())
self.directoryTree.setRootIndex(root)
示例8: buttonClicked
# 需要导入模块: from PyQt4.QtGui import QFileSystemModel [as 别名]
# 或者: from PyQt4.QtGui.QFileSystemModel import setNameFilters [as 别名]
def buttonClicked(self):
sender = self.sender()
self.statusBar().showMessage(sender.text() + " was pressed")
if __name__ == "__main__":
app = QApplication(sys.argv)
# Splitter to show 2 views in same widget easily.
splitter = QSplitter()
# The model.
model = QFileSystemModel()
# You can setRootPath to any path.
model.setReadOnly(True)
# model.setRootPath("/Users/legal/Developpement/pc-sim/src/reports")
model.setRootPath(QDir.currentPath())
model.setNameFilters(["*.perf", "*.dat", "*.txt", "*.data"])
model.setNameFilterDisables(False)
# setDir.setNameFilters(filter)
# tree.setRootIndex(model.index(QtCore.QDir.path(setDir), 0 ))
# List of views.
views = []
# for ViewType in (QColumnView, QTreeView):
# for ViewType in (QTreeView):
# Create the view in the splitter.
view = TreeView(splitter)
view.setSelectionMode(QAbstractItemView.ExtendedSelection)
示例9: DirView
# 需要导入模块: from PyQt4.QtGui import QFileSystemModel [as 别名]
# 或者: from PyQt4.QtGui.QFileSystemModel import setNameFilters [as 别名]
class DirView(QTreeView):
"""Base file/directory tree view"""
def __init__(self, parent=None):
super(DirView, self).__init__(parent)
self.name_filters = None
self.parent_widget = parent
self.valid_types = None
self.show_all = None
self.menu = None
self.common_actions = None
self.__expanded_state = None
self._to_be_loaded = None
self.fsmodel = None
self.setup_fs_model()
self._scrollbar_positions = None
# ---- Model
def setup_fs_model(self):
"""Setup filesystem model"""
filters = QDir.AllDirs | QDir.Files | QDir.Drives | QDir.NoDotAndDotDot
self.fsmodel = QFileSystemModel(self)
self.fsmodel.setFilter(filters)
self.fsmodel.setNameFilterDisables(False)
def install_model(self):
"""Install filesystem model"""
self.setModel(self.fsmodel)
def setup_view(self):
"""Setup view"""
self.install_model()
self.connect(self.fsmodel, SIGNAL("directoryLoaded(QString)"), lambda: self.resizeColumnToContents(0))
self.setAnimated(False)
self.setSortingEnabled(True)
self.sortByColumn(0, Qt.AscendingOrder)
def set_name_filters(self, name_filters):
"""Set name filters"""
self.name_filters = name_filters
self.fsmodel.setNameFilters(name_filters)
def set_show_all(self, state):
"""Toggle 'show all files' state"""
if state:
self.fsmodel.setNameFilters([])
else:
self.fsmodel.setNameFilters(self.name_filters)
def get_filename(self, index):
"""Return filename associated with *index*"""
if index:
return osp.normpath(unicode(self.fsmodel.filePath(index)))
def get_index(self, filename):
"""Return index associated with filename"""
return self.fsmodel.index(filename)
def get_selected_filenames(self):
"""Return selected filenames"""
if self.selectionMode() == self.ExtendedSelection:
return [self.get_filename(idx) for idx in self.selectedIndexes()]
else:
return [self.get_filename(self.currentIndex())]
def get_dirname(self, index):
"""Return dirname associated with *index*"""
fname = self.get_filename(index)
if fname:
if osp.isdir(fname):
return fname
else:
return osp.dirname(fname)
# ---- Tree view widget
def setup(self, name_filters=["*.py", "*.pyw"], valid_types=(".py", ".pyw"), show_all=False):
"""Setup tree widget"""
self.setup_view()
self.set_name_filters(name_filters)
self.valid_types = valid_types
self.show_all = show_all
# Setup context menu
self.menu = QMenu(self)
self.common_actions = self.setup_common_actions()
# ---- Context menu
def setup_common_actions(self):
"""Setup context menu common actions"""
# Filters
filters_action = create_action(
self, _("Edit filename filters..."), None, get_icon("filter.png"), triggered=self.edit_filter
)
# Show all files
all_action = create_action(self, _("Show all files"), toggled=self.toggle_all)
all_action.setChecked(self.show_all)
self.toggle_all(self.show_all)
return [filters_action, all_action]
#.........这里部分代码省略.........
示例10: Window
# 需要导入模块: from PyQt4.QtGui import QFileSystemModel [as 别名]
# 或者: from PyQt4.QtGui.QFileSystemModel import setNameFilters [as 别名]
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
central_widget = QWidget()
self._current_path = None
self._use_suffix = False
self._file_model = QFileSystemModel()
self._file_model.setNameFilters(['*.jpg', '*.png'])
self._file_model.setNameFilterDisables(False)
self._file_model.setRootPath(QDir.rootPath())
self._file_selection_model = QItemSelectionModel(self._file_model)
self._file_selection_model.currentChanged.connect(self._on_current_file_changed)
self._file_tree = QTreeView(parent=self)
self._file_tree.collapsed.connect(self._on_tree_expanded_collapsed)
self._file_tree.expanded.connect(self._on_tree_expanded_collapsed)
self._file_tree.setModel(self._file_model)
self._file_tree.setSelectionModel(self._file_selection_model)
self._file_tree.setColumnHidden(1, True)
self._file_tree.setColumnHidden(2, True)
self._file_tree.setColumnHidden(3, True)
self._file_tree.header().hide()
self._viewer = Viewer(Loader(24))
self._splitter = QSplitter();
self._splitter.addWidget(self._file_tree)
self._splitter.addWidget(self._viewer)
self._splitter.setStretchFactor(0, 0)
self._splitter.setStretchFactor(1, 1)
self._splitter.setCollapsible(0, False)
self._layout = QGridLayout()
self._layout.addWidget(self._splitter)
self._switch_to_normal()
central_widget.setLayout(self._layout)
self._file_tree.installEventFilter(self);
self.resize(800, 600)
self.setWindowTitle('pyQtures')
self.setCentralWidget(central_widget)
self.show()
def eventFilter(self, widget, event):
if event.type() == QEvent.KeyPress:
if event.key() == Qt.Key_Tab:
self._toggle_path_suffix()
return True
return QMainWindow.eventFilter(self, widget, event)
def _toggle_path_suffix(self):
self._use_suffix = not self._use_suffix
self._update_path()
def _switch_to_fullscreen(self):
self._splitter.widget(0).hide()
self._layout.setMargin(0)
self.showFullScreen()
def _switch_to_normal(self):
self._splitter.widget(0).show()
self._layout.setMargin(4)
self.showNormal()
def keyPressEvent(self, key_event): # Signal handler.
key = key_event.key()
if self.isFullScreen():
self._full_screen_key_handler(key)
else:
self._normal_key_handler(key)
def _full_screen_key_handler(self, key):
if Qt.Key_Escape == key:
self._switch_to_normal()
elif Qt.Key_Return == key:
self._switch_to_normal()
elif Qt.Key_Up == key:
self._go_to_sibling_image(-1)
elif Qt.Key_Down == key:
self._go_to_sibling_image(1)
elif Qt.Key_Tab == key:
self._toggle_path_suffix()
def _go_to_sibling_image(self, offset):
current = self._file_selection_model.currentIndex()
nxt = current.sibling(current.row() + offset, current.column())
if (nxt.parent() != current.parent()):
return
# TODO(eustas): Iterate through dirs?
self._file_selection_model.setCurrentIndex(nxt, QItemSelectionModel.SelectCurrent)
def _normal_key_handler(self, key):
if Qt.Key_Escape == key:
QCoreApplication.instance().quit()
#.........这里部分代码省略.........
示例11: SourceFileTreeWidget
# 需要导入模块: from PyQt4.QtGui import QFileSystemModel [as 别名]
# 或者: from PyQt4.QtGui.QFileSystemModel import setNameFilters [as 别名]
class SourceFileTreeWidget(QWidget):
""" Config window"""
def __init__(self, parent):
super(SourceFileTreeWidget, self).__init__(parent)
self.ui = Ui_SourceFileTreeWidget()
self.ui.setupUi(self)
self.file_model = QFileSystemModel()
#self.file_model.setFilter(QDir.AllEntries | QDir.NoDot)
self.set_filter()
self.ui.tree.setModel(self.file_model)
self.ui.tree.resizeColumnToContents(0)
self.ui.custom_root.setText(QDir.currentPath())
self.set_root()
header = self.ui.tree.header()
header.setResizeMode(QHeaderView.ResizeToContents)
#header.setStretchLastSection(True)
#header.setSortIndicator(0, Qt.AscendingOrder)
#header.setSortIndicatorShown(True)
#header.setClickable(True)
self.connect(self.ui.tree, QtCore.SIGNAL('doubleClicked(QModelIndex)'), self.open_file)
self.connect(self.ui.ok_filter, QtCore.SIGNAL('clicked()'), self.set_filter)
self.connect(self.ui.custom_filter, QtCore.SIGNAL('returnPressed()'), self.set_filter)
self.connect(self.ui.ok_root, QtCore.SIGNAL('clicked()'), self.set_root)
self.connect(self.ui.custom_root, QtCore.SIGNAL('returnPressed()'), self.set_root)
self.open_file_signal = None
def set_open_file_signal(self, signal):
""" callback to signal file opening """
self.open_file_signal = signal
def set_root(self, root=None, use_common_prefix=True):
""" set the root path of the widget """
curr = str(self.ui.custom_root.text())
if not root:
use_common_prefix = False # input text box will override it.
root = self.ui.custom_root.text()
else:
self.ui.custom_root.setText(root)
idx = self.file_model.index(root)
self.ui.tree.setExpanded(idx, True)
if use_common_prefix and curr == os.path.commonprefix([root, curr]):
return
idx = self.file_model.setRootPath(root)
if not idx.isValid():
logging.warn('Invalid path')
return
self.ui.tree.setRootIndex(idx)
self.ui.tree.setExpanded(idx, True)
def set_filter(self):
""" set filter by extension """
filters = str(self.ui.custom_filter.text()).split(';')
self.file_model.setNameFilters(filters)
self.file_model.setNameFilterDisables(False)
def open_file(self, idx):
""" emit file opening signal """
if self.file_model.isDir(idx):
return
fullpath = self.file_model.filePath(idx)
if self.open_file_signal:
self.open_file_signal.emit(str(fullpath), 0)
def set_file_selected(self, tab_idx):
""" slot to associate the file in active tab """
filename = self.sender().tabToolTip(tab_idx)
idx = self.file_model.index(filename)
if idx.isValid():
self.ui.tree.selectionModel().select(idx, QItemSelectionModel.ClearAndSelect)