为什么Qt ColumnView小部件会在这种情况下崩溃?

时间:2015-07-18 05:52:09

标签: qt user-interface crash widget

我在 Qt 中测试使用 QColumnView 小部件的应用程序。小部件有两列,当单击第一列(父级)中的项目时,它的项目(子级)将显示在第二列中。

我遇到的问题是:

如果任何父母的子女多于父母,则应用程序会崩溃,如果有任何超过"选择了孩子。

换句话说,如果有五个父母,每个父母有五个(或更少)孩子,一切都很好。但是,如果任何父级有六个或更多子级,则如果选择索引大于前五个的子级,应用程序将崩溃。

我希望上述内容清楚。

感谢。

1 个答案:

答案 0 :(得分:0)

事实证明我需要以下内容:

if(!hasIndex(row, column, parent))  
    return QModelIndex();

在我的" QAbstractItemModel :: index()"功能。我并不认为视图小部件会调用" index()"具有越界行/列组合,因为它可以使用" QAbstractItemModel :: rowCount()"和QAbstractItemModel :: columnCount()"获得模型的结构。