为什么 Qt ColumnView 小部件在这种情况下会崩溃?
Why does Qt ColumnView widget crash in this situation?
我正在 Qt 中测试一个使用 QColumnView 小部件的应用程序。该小部件有两列,当单击第一列 (parent) 中的项目时,它的项目 (children) 将显示在第二列中。
我遇到的问题是:
如果任何 parent 的 children 多于 parents,如果选择 "excess" children 中的任何一个,应用程序将崩溃.
换句话说,如果有五个parent并且每个parent有五个(或更少)children,那么一切都很好。但是,如果任何 parent 有六个或更多 children,如果选择索引大于前五个的任何 child,应用程序会崩溃。
我希望以上是清楚的。
谢谢。
事实证明我需要以下内容:
if(!hasIndex(row, column, parent))
return QModelIndex();
在我的 "QAbstractItemModel::index()" 函数中。我不认为视图小部件会使用越界 row/column 组合调用 "index()",因为它可以使用 "QAbstractItemModel::rowCount()" 和 QAbstractItemModel::columnCount()" 来获取模型的结构.
我正在 Qt 中测试一个使用 QColumnView 小部件的应用程序。该小部件有两列,当单击第一列 (parent) 中的项目时,它的项目 (children) 将显示在第二列中。
我遇到的问题是:
如果任何 parent 的 children 多于 parents,如果选择 "excess" children 中的任何一个,应用程序将崩溃.
换句话说,如果有五个parent并且每个parent有五个(或更少)children,那么一切都很好。但是,如果任何 parent 有六个或更多 children,如果选择索引大于前五个的任何 child,应用程序会崩溃。
我希望以上是清楚的。
谢谢。
事实证明我需要以下内容:
if(!hasIndex(row, column, parent))
return QModelIndex();
在我的 "QAbstractItemModel::index()" 函数中。我不认为视图小部件会使用越界 row/column 组合调用 "index()",因为它可以使用 "QAbstractItemModel::rowCount()" 和 QAbstractItemModel::columnCount()" 来获取模型的结构.