在 PySide 中使用 QFileSystemModel,从索引中获取项目
Posted
技术标签:
【中文标题】在 PySide 中使用 QFileSystemModel,从索引中获取项目【英文标题】:Using QFileSystemModel in PySide, getting the item from the index 【发布时间】:2014-02-11 21:25:20 【问题描述】:我已经在寻找这个问题的答案,但在这里找不到任何东西,所以我问它。
使用QStandardModel
,使用命令函数itemFromIndex
从QModelIndex
获取项目相当简单。
model = openedIndex.model()
item = model.itemFromIndex(openedIndex)
我有兴趣做基本相同的事情,但对于QFileSystemModel
,我是否有一种简单或直接的方法可以做到这一点。在文档中看不到任何内容。
【问题讨论】:
【参考方案1】:QFileSystemModel
没有任何物品类别。它不会为每个项目创建一个对象。
您可能会发现QFileSystemModel::filePath
和QFileSystemModel::index
方法很有用。它们允许将索引转换为路径,反之亦然。索引和路径都可以作为唯一的项目标识符。
无法直接禁用QFileSystemModel
中的某些项目。您需要创建一个代理模型类,该类将返回与源模型几乎相同的数据和标志,但在需要时删除Qt::ItemIsEnabled
标志。
【讨论】:
那么,如果不是这种情况,任何想法我可能会如何禁用它的项目。如果我设置过滤项目被禁用所以我认为它一定是可能的? 不可能直接。您需要创建一个代理模型类,该类将返回与源模型几乎相同的数据和标志,但在需要时删除Qt::ItemIsEnabled
标志。
我已经创建了一个代理模型,我将如何使用代理模型删除Qt::ItemIsEnabled
标志。
Pavel Strakhov,您给了我答案,我需要将 ItemIsEnabled 更改为 false 如果您想将其添加为答案,我会将其标记为正确。以上是关于在 PySide 中使用 QFileSystemModel,从索引中获取项目的主要内容,如果未能解决你的问题,请参考以下文章
使用 PySide2 在 Qt-Designer 中嵌入 PyQtGraph
为啥在 pyside2 中,不能使用 QTranform mul QPointF?
如何使用 pyside2 在 Qtableview 中显示(和格式化)日期时间数据