gpt4 book ai didi

python - 如何在 PyQt/PySide 中表征 createIndex 的 "pointer"参数?

转载 作者:太空宇宙 更新时间:2023-11-03 18:17:34 26 4
gpt4 key购买 nike

在 PyQt/PySide 中使用 QtCore.QAbstractItemModel.createIndex(row, col,pointer) 创建索引是很常见的。 In the PySide documentation该方法描述如下:

PySide.QtCore.QAbstractItemModel.createIndex(row, column, ptr)

Creates a model index for the given row and column with the internal pointer ptr

我的问题是,考虑到 Python 实际上并不使用指针,第三个参数在 Python 中意味着什么?以下是所使用方法的典型示例(在本例中,在给定子节点索引的情况下,返回父节点索引的方法):

def parent(self, index):
childItem = index.internalPointer()
parentItem = childItem.parent()
return self.createIndex(parentItem.row(), 0, parentItem)

虽然我们使用 internalPointer() 提取子项,但这不是 createIndex() 的第三个输入 [编辑:即使是,因为它是 python 它不会是一个指针,原因在下一段]。相反,createIndex() 的第三个输入只是父项(而不是指向父项的指针)。所以看来我根本没有给它提供一个指针,而只是我借助一个名为 internalPointer 的方法提取的另一个对象。

createIndex 的第三个输入真的是一个指针(根据文档)吗?或者我们应该将其称为一个项目并消除对指针的讨论?

<小时/>

请注意,此问题基于 PySide ( documentation for Qt version ) 附带的 simpletreemodel 示例。模块 simpletreemodel.py 位于 \PySide\examples\itemviews\simpletreemodel

我在 QtCentre 上发布了这个问题的一个版本: http://www.qtcentre.org/threads/59747-Is-third-input-to-createIndex-really-a-pointer

最佳答案

不要将名称中的指针视为文字“C 指针”。正如 docs 中所述,它“被模型用来将索引与内部数据结构关联起来”。因此,给定一个 QModelIndex,您应该能够将其映射到内部结构。为此,internalPointer 可以是任何可以帮助您做到这一点的东西。这在树模型中尤其必要,因为本身无法完全识别分层模型中的项目。

关于python - 如何在 PyQt/PySide 中表征 createIndex 的 "pointer"参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24763215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com