【问题标题】:Can't edit items in QTreeView with QFileSystems无法使用 QFileSystems 编辑 QTreeView 中的项目
【发布时间】:2016-02-28 20:20:02
【问题描述】:

我正在尝试获取 QTreeView 以允许用户从 QFileSystemModel 编辑文件名。然而 Qt 只是打印:

edit: editing failed

我使用 PySide 和 PyQt 得到相同的结果。

使用 openPersistenEditor() 打开编辑器可以,但我更喜欢使用内置机制。

import sys
from PyQt4.QtGui import QTreeView, QFileSystemModel, QApplication


class TestView(QTreeView):
    def __init__(self, directory, *args, **kwargs):
        super(TestView, self).__init__(*args, **kwargs)

        self.file_system_model = QFileSystemModel()

        self.file_system_model.setRootPath(directory)
        index = self.file_system_model.index(directory)
        self.setModel(self.file_system_model)
        self.setRootIndex(index)
        self.activated.connect(self._on_edit)

    def _on_edit(self, index):
        # self.closePersistentEditor(index)
        # app.processEvents()
        self.edit(self.currentIndex())
        # self.openPersistentEditor(index)


if __name__ == '__main__':
    app = QApplication([])
    directory = r'c:/'
    dialog = TestView(directory)

    dialog.show()
    sys.exit(app.exec_())

【问题讨论】:

    标签: python qt pyqt pyside qtreeview


    【解决方案1】:

    模型默认是只读的,所以需要添加:

        self.file_system_model.setReadOnly(False)
    

    【讨论】:

      猜你喜欢
      • 2022-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多