Как отключить переименование файлов двойным щелчком мыши в QTreeView и QFileSystemModel в PyQt?
-
12-12-2019 - |
Вопрос
Простой вопрос.Я хотел бы использовать F2 или Enter для переименования и дважды щелкнуть, чтобы открыть файл.
С использованием self.treeView.doubleClicked.connect(self.doubleclick)
Я могу делать что-то в своем self.doubleClick
метод, но переименование все равно срабатывает.
Модель не доступна только для чтения (model.setReadOnly(False)
).
Решение
По умолчанию doubleClicked
сигнал излучается непосредственно перед обычным действием редактирования, которое выполняется QAbstractItemView.edit функция.
К счастью, эта функция виртуальная, поэтому ее можно переопределить в подклассе:
class TreeView(QtGui.QTreeView):
def edit(self, index, trigger, event):
if trigger == QtGui.QAbstractItemView.DoubleClicked:
print 'DoubleClick Killed!'
return False
return QtGui.QTreeView.edit(self, index, trigger, event)
Другие советы
Я не знаю, есть ли это в версиях Python, но в C++ Qt вы просто устанавливаете триггеры редактирования в QAbstractItemView:
void setEditTriggers ( EditTriggers triggers )