在 PySide 中使用 QFileSystemModel,从索引中获取项目

Posted

技术标签:

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

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

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

以上是关于在 PySide 中使用 QFileSystemModel,从索引中获取项目的主要内容,如果未能解决你的问题,请参考以下文章

使用 PySide2 在 Qt-Designer 中嵌入 PyQtGraph

为啥在 pyside2 中,不能使用 QTranform mul QPointF?

如何在 PySide 中模块化创建属性

如何使用 pyside2 在 Qtableview 中显示(和格式化)日期时间数据

PySide/pyQt 在 QTableView 中显示数据

如何在 PySide2 中显示图像?