【问题标题】:Using QFileSystemModel in PySide, getting the item from the index在 PySide 中使用 QFileSystemModel,从索引中获取项目
【发布时间】:2014-02-11 21:25:20
【问题描述】:

我已经在寻找这个问题的答案,但在这里找不到任何东西,所以我问它。

使用QStandardModel,使用命令函数itemFromIndexQModelIndex 获取项目相当简单。

model = openedIndex.model()
item = model.itemFromIndex(openedIndex)

我有兴趣做基本相同的事情,但对于QFileSystemModel,我是否有一种简单或直接的方法可以做到这一点。在文档中看不到任何内容。

【问题讨论】:

    标签: qt pyside qtreeview qfilesystemmodel qmodelindex


    【解决方案1】:

    QFileSystemModel 没有任何物品类别。它不会为每个项目创建一个对象。

    您可能会发现QFileSystemModel::filePathQFileSystemModel::index 方法很有用。它们允许将索引转换为路径,反之亦然。索引和路径都可以作为唯一的项目标识符。

    无法直接禁用QFileSystemModel 中的某些项目。您需要创建一个代理模型类,该类将返回与源模型几乎相同的数据和标志,但在需要时删除Qt::ItemIsEnabled 标志。

    【讨论】:

    • 那么,如果不是这种情况,任何想法我可能会如何禁用它的项目。如果我设置过滤项目被禁用所以我认为它一定是可能的?
    • 不可能直接。您需要创建一个代理模型类,该类将返回与源模型几乎相同的数据和标志,但在需要时删除 Qt::ItemIsEnabled 标志。
    • 我已经创建了一个代理模型,我将如何使用代理模型删除Qt::ItemIsEnabled 标志。
    • Pavel Strakhov,您给了我答案,我需要将 ItemIsEnabled 更改为 false 如果您想将其添加为答案,我会将其标记为正确。
    猜你喜欢
    • 2017-09-29
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多