本文整理汇总了Python中PyQt4.QtGui.QDirModel.refresh方法的典型用法代码示例。如果您正苦于以下问题:Python QDirModel.refresh方法的具体用法?Python QDirModel.refresh怎么用?Python QDirModel.refresh使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt4.QtGui.QDirModel
的用法示例。
在下文中一共展示了QDirModel.refresh方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: FileSystemBrowser
# 需要导入模块: from PyQt4.QtGui import QDirModel [as 别名]
# 或者: from PyQt4.QtGui.QDirModel import refresh [as 别名]
class FileSystemBrowser(QTreeView):
"""simple file system browser"""
def __init__(self):
QTreeView.__init__(self)
self.model = QDirModel()
self.setModel(self.model)
self.setSortingEnabled(True)
self.setAlternatingRowColors(True)
self.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.setContextMenuPolicy(Qt.CustomContextMenu)
self.setAutoExpandDelay(500)
i = self.model.index(os.getcwd())
self.scrollTo(i)
self.expand(i)
self.setCurrentIndex(i)
for i in range(self.model.columnCount()):
self.resizeColumnToContents(i)
self.connect(self, SIGNAL("doubleClicked(QModelIndex)"), self.itemAction)
self.connect(self, SIGNAL("customContextMenuRequested(QPoint)"), self.showContextMenu)
def itemAction(self, mi):
"""default action (on doubleclick) for item at model index mi"""
fi = self.model.fileInfo(mi)
if self.model.isDir(mi):
return
path = str(fi.absoluteFilePath())
if not SimuVis4.Globals.fileTypeActions.openFile(path):
self.openExternal(path)
def showContextMenu(self, pos):
"""show context menu for item at pos"""
mi = self.indexAt(pos)
fi = self.model.fileInfo(mi)
m = QMenu()
self.path = str(fi.absoluteFilePath())
if self.model.isDir(mi):
m.addAction(QCoreApplication.translate('DataBrowser', 'Refresh'),
lambda x=mi: self.model.refresh(x))
else:
for a in SimuVis4.Globals.fileTypeActions.getActions(self.path):
# this is weird, ... but it works
m.addAction(a[0], lambda x=a[1]: x(self.path))
m.addSeparator()
m.addAction(QCoreApplication.translate('DataBrowser', 'Open external'),
self.openExternal)
a = m.exec_(self.mapToGlobal(pos))
def openExternal(self, path=None):
if not path:
path = self.path
QDesktopServices.openUrl(QUrl.fromLocalFile(path))
示例2: EkdSaveDialog
# 需要导入模块: from PyQt4.QtGui import QDirModel [as 别名]
# 或者: from PyQt4.QtGui.QDirModel import refresh [as 别名]
#.........这里部分代码省略.........
SIGNAL("indexesMoved (const QModelIndexList&)"),
self.updateFile)
self.connect(self.fileField, SIGNAL("textChanged (const QString&)"),
self.activate)
self.connect(self.fileField, SIGNAL("returnPressed()"), self.accept)
# Taille minimum
self.setMinimumSize(700, 480)
# Par défaut, on désactive
self.deactivate()
# Completion des fichiers
self.completion = QCompleter(self.dirModel, self.dirList)
def updateLatDir(self, item) :
""" Fonction permettant de naviguer dans la listes des répertoires """
self.updateDir(self.dirModelLight.filePath(item))
def treeMAJ(self, item) :
self.dirTree.resizeColumnToContents(0)
def activate(self, filename=None):
""" Activation des boutton de sauvegarde """
self.dirList.clearSelection()
if filename != "":
self.saveButton.setEnabled(True)
else:
self.saveButton.setEnabled(False)
def deactivate(self):
""" Désactivation des boutton de sauvegarde """
self.saveButton.setEnabled(False)
def updateDir(self, path = None):
""" Fonction permettant de naviguer dans la listes des répertoires """
if path :
self.currentDir = path
self.location.setText("<b>%s</b>" % path)
self.dirModel.clear()
self.tmpdir = QDir()
self.tmpdir.setPath(self.currentDir)
self.tmpdir.setNameFilters(QStringList(self.filter))
# Une icône pour les images, un autre icône pour les vidéos, et
# une pour audio
if self.mode == "image" :
icone = QIcon("Icones" + os.sep + "image_image.png")
elif self.mode == "video" :
icone = QIcon("Icones" + os.sep + "image_video.png")
elif self.mode == "audio" :
icone = QIcon("Icones" + os.sep + "image_audio.png")
else:
icone = QIcon("Icones" + os.sep + "image_default.png")
for wlfile in self.tmpdir.entryList(QDir.Files):
if self.mode == "image" :
icone = QIcon(EkdPreview("Icones" + os.sep + "image_default.png").get_preview())
item = QStandardItem(icone, QString(wlfile))
item.setToolTip(wlfile)
item.setData(QVariant(self.tmpdir.absolutePath() + os.sep + wlfile), Qt.UserRole + 2)
item.setData(QVariant(wlfile), Qt.UserRole + 3)
self.dirModel.appendRow(item)
def updateFile(self, item):
""" Fonction appelée par la listView lors d'un changement de repertoire"""
# On récupère le QModel parent du QModelItem
path = "%s" % item.data(Qt.UserRole + 2).toString()
name = os.path.basename(path)
self.fileField.selectAll()
self.fileField.setFocus()
self.fileField.setText(name)
self.activate(name)
def selectedFile(self):
""" Renvoi le fichier selectionné pour la sauvegarde"""
# Récupération du fichier selectionné
fichier = self.fileField.text()
output = "%s%s%s" % (self.currentDir, os.sep, fichier)
info = QFileInfo(output)
# Si l'utilisateur n'a pas spécifié de suffix, on l'ajoute
if info.suffix() != self.suffix[1:]:
output = "%s%s" % (output, self.suffix)
return output
def mkdir(self):
""" Crée un répertoire dans le répertoire courant """
(dirname, ok) = QInputDialog.getText(self, _(u"Nouveau répertoire"), _(u"Nom du répertoire"), QLineEdit.Normal, _(u"Nouveau répertoire"))
if ok :
try :
os.mkdir("%s%s%s" % (self.currentDir, os.sep,dirname))
#print u"Création de : %s%s%s" % (self.currentDir, os.sep, dirname)
EkdPrint(u"Création de : %s%s%s" % (self.currentDir, os.sep, dirname))
self.updateDir()
self.dirModelLight.refresh()
except Exception, e:
#print _(u"Impossible de crée un nouveau répertoire : %s" % e)
EkdPrint(_(u"Impossible de crée un nouveau répertoire : %s" % e))