2014-02-11 62 views
0

我看了这个答案,但在这里找不到任何东西,所以我问它。在PySide中使用QFileSystemModel,从索引获取项目

使用QStandardModel使用命令功能itemFromIndexQModelIndex中获取物品是相当直接的。

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

我很感兴趣,这样做基本上是相同的,但对于QFileSystemModel,有没有为我做这一个简单的或直接的方式。在文档中看不到任何内容。

回答

1

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

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

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

+0

然后,如果不是这样,任何想法我可能会去禁用它的项目。如果我设置过滤项目被禁用,所以我认为它一定是可能的? – ceorron

+1

这是不可能的。您需要创建一个代理模型类,它将返回与源模型几乎相同的数据和标志,但需要时移除'Qt :: ItemIsEnabled'标志。 –

+0

我已经创建了一个代理模型,我将如何去除使用代理模型的'Qt :: ItemIsEnabled'标志。 – ceorron

相关问题