Это решение работает для меня и полностью скрывает расширение от пользователя.
Переопределить data
и setData
в классе QFileSystemModel
.
def data(self, index, role):
if role == Qt.EditRole:
return self.fileName(index)
else:
return super(ContentFileSystemModel, self).data(index, role)
def setData(self, index: QModelIndex, value, role: int=...) -> bool:
print("setData")
if role == Qt.EditRole:
if self.isDir(index):
d = ""
else:
d = "."
return super(ContentFileSystemModel, self).setData(index, str(value) + d + self.fileInfo(index).completeSuffix(), role)
return super(ContentFileSystemModel, self).setData(index, value, role)
Создайте QStyledItemDelegate
:
class NameDelegate(QStyledItemDelegate):
def initStyleOption(self, option, index):
super().initStyleOption(option, index)
if isinstance(index.model(), QFileSystemModel):
if not index.model().isDir(index):
option.text = index.model().fileInfo(index).baseName()
def setEditorData(self, editor, index):
if isinstance(index.model(), QFileSystemModel):
if not index.model().isDir(index):
editor.setText(index.model().fileInfo(index).baseName())
else:
super().setEditorData(editor, index)
И установите его на свой взгляд:
delegate = NameDelegate(self.lv_file_manager)
view.setItemDelegate(delegate)
person
E.G. Cortes
schedule
26.12.2020