rowCount() 和 hasChildren() 有什么区别?

What is the difference between rowCount() and hasChildren()?

我想subclassQtCore.QSortFilterProxyModel,发现它有两个class方法,功能很相似

rowCount()hasChildren()

我可以用rowCount()==0判断是否有children。为什么我需要一个单独的 class 方法 hasChildren()?

他们的角色有何不同? hasChildren() 有必要吗?

rowCount() 与 hasChildren() 不同,因为第一个指示行数,第二个指示行数 children。正如您在将 rowCount 与零进行比较时所指出的那样,它们似乎是等价的。例如,如果模型没有列(columnCount() == 0)但有行(rowCount() > 0),那么它会有 children 吗?嗯,不,这就是为什么在各种模型中 QModelIndex 被验证为有效并且列数或行数大于零的原因。

因此,如果您想验证 QModelIndex 是否具有 children,最好使用 hasChildren(),因为它更具可读性。