QFileSystemModel, problème de rename et delete
Bonjour à tous,
J'ai quelques problèmes de renommage et de suppression avec le code ci-dessous.
Pour information le répertoire "D:/test" contient un sous répertoire nommé "MyFolder" qui contient un fichier nommé "MyFile".
Si je déploie le repertoire "MyFolder", que je le renomme et qu'après je supprime le fichier "MyFile" alors le message suivant apparait :
QFileSystemWatcher: failed to add paths: D:/test/MyFolder
Le fichier est apparait toujours dans le treeView mais si je regarde via l'explorer de Windows, il n'existe plus.
j'utilise python 2.6.0 et PyQt 4.5.4 sous Windows mais le problème se produit aussi sous Unix avec Python 2.7.1, Qt 4.5.2 et PyQt 4.8.2.
Merci pour le coup de main
Jean
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| #===========================================================
import sys
from PyQt4 import QtGui, QtCore
class testExplo(QtCore.QObject):
def __init__(self):
QtCore.QObject.__init__(self)
self.myTreeView = QtGui.QTreeView()
self.myTreeView.keyPressEvent = self.keyPressEvent
#-- Model
self.myModel = QtGui.QFileSystemModel()
self.myModel.setReadOnly(False)
self.myModel.setRootPath(r"D:\test")
#-- treeview
self.myTreeView.setModel(self.myModel)
rootModelIndex = self.myModel.index(r"D:\test")
self.myTreeView.setRootIndex(rootModelIndex)
QtCore.QObject.connect(self.myModel,
QtCore.SIGNAL("fileRenamed ( const QString, const
QString , const QString) "),
self.printRenamed)
self.myTreeView.show()
def printRenamed(self, path, oldName, newName):
print path, oldName, newName
self.myModel.revert()
def keyPressEvent(self,event):
oModelIndex = self.myTreeView.selectedIndexes()[0]
if event.key() == QtCore.Qt.Key_Delete:
self.myModel.remove(oModelIndex)
event.accept()
QtGui.QTreeView.keyPressEvent(self.myTreeView, event)
try:
app = QtGui.QApplication(sys.argv)
myExplo = testExplo()
end = app.exec_()
except Exception, inst :
print inst
#=========================================================== |