我在 Qt 中测试使用 QColumnView 小部件的应用程序。小部件有两列,当单击第一列(父级)中的项目时,它的项目(子级)将显示在第二列中。
我遇到的问题是:
如果任何父母的子女多于父母,则应用程序会崩溃,如果有任何超过"选择了孩子。
换句话说,如果有五个父母,每个父母有五个(或更少)孩子,一切都很好。但是,如果任何父级有六个或更多子级,则如果选择索引大于前五个的子级,应用程序将崩溃。
我希望上述内容清楚。
感谢。
答案 0 :(得分:0)
事实证明我需要以下内容:
if(!hasIndex(row, column, parent))
return QModelIndex();
在我的" QAbstractItemModel :: index()"功能。我并不认为视图小部件会调用" index()"具有越界行/列组合,因为它可以使用" QAbstractItemModel :: rowCount()"和QAbstractItemModel :: columnCount()"获得模型的结构。