Как отключить переименование файлов двойным щелчком мыши в QTreeView и QFileSystemModel в PyQt?

StackOverflow https://stackoverflow.com//questions/12670874

Вопрос

Простой вопрос.Я хотел бы использовать 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 )

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top