【发布时间】:2015-07-18 05:52:09
【问题描述】:
我正在 Qt 中测试一个使用 QColumnView 小部件的应用程序。小部件有两列,当单击第一列(父级)中的项目时,它的项目(子级)显示在第二列中。
我遇到的问题是这样的:
如果任何父母的孩子多于父母,如果选择了任何“多余”的孩子,应用程序就会崩溃。
换句话说,如果有五个父母并且每个父母有五个(或更少)孩子,那么一切都很好。但是,如果任何父级有六个或更多子级,则如果选择了索引大于前五个的任何子级,则应用程序将崩溃。
我希望以上内容很清楚。
谢谢。
【问题讨论】:
-
请提供最小代码示例
-
@pnezis 感谢您的评论。事实证明我需要以下内容: if(!hasIndex(row, column, parent)) return QModelIndex();在我的“QAbstractItemModel::index()”函数中。我不认为视图小部件会使用无效的行、列组合调用“索引”,因为它可以使用“QAbstractItemModel::rowCount()”和 QAbstractItemModel::columnCount()”来获取模型的结构。
标签: qt user-interface crash widget