类QAbstractItemModel
有一个 QAbstractItemModel::createIndex()
创建 QModelIndex 的方法。
例如,当为每个 QComboBox 项目创建此对象时?
在文档中我们可以找到:
注意:模型索引应立即使用,然后丢弃。在调用更改模型结构或删除项目的模型函数后,您不应依赖索引保持有效。如果您需要随着时间的推移保留模型索引,请使用 QPersistentModelIndex。
所以它似乎是临时对象,但是谁创建的呢?是模型,但我没有发现模型本身在源代码中创建索引的任何迹象,或者视图(小部件)在从模型读取数据之前创建索引?
QComboBox 如何存储从 Model 读取的值和索引,或者它在每次需要更新数据时读取它?
QComboBox 如何实际读取数据,它只是从 0 循环到rowCount()
并为每个值创建新索引然后用于data( const QModelIndex &index, int role )
读取?