Я пытаюсь создать утилиту с использованием python/pyqt для создания архива *.tar из QFileSystemModel
(включая только те элементы, которые проверены). Теперь я хочу, чтобы контроль над флажками QFileSystemModel
фильтровался с помощью fileName/fileType/fileSize.
Как я могу установить/снять флажки QFileSystemModel
за пределами класса с поиском подстановочных знаков по имени файла/типу файла/размеру файла?
class CheckableDirModel(QtGui.QFileSystemModel):
def __init__(self, parent=None):
QtGui.QFileSystemModel.__init__(self, None)
self.checks = {}
def data(self, index, role=QtCore.Qt.DisplayRole):
if role != QtCore.Qt.CheckStateRole:
return QtGui.QFileSystemModel.data(self, index, role)
else:
if index.column() == 0:
return self.checkState(index)
def flags(self, index):
return QtGui.QFileSystemModel.flags(self, index) | QtCore.Qt.ItemIsUserCheckable
def checkState(self, index):
if index in self.checks:
return self.checks[index]
else:
return QtCore.Qt.Checked
def setData(self, index, value, role):
if (role == QtCore.Qt.CheckStateRole and index.column() == 0):
self.checks[index] = value
self.emit(QtCore.SIGNAL("dataChanged(QModelIndex,QModelIndex)"), index, index)
return True
return QtGui.QFileSystemModel.setData(self, index, value, role)
self.dirTreeView = QtGui.QTreeView(self.centralwidget)
self.dirModel = CheckableDirModel()
self.dirTreeView.setModel(self.dirModel)