如何在QTreeView顶部插入项目

如何在QTreeView顶部插入项目,qt,qtreeview,qabstractitemmodel,Qt,Qtreeview,Qabstractitemmodel,在我的应用程序中,我想在QTreeView的顶部插入一个项目 到目前为止,我所拥有的将在当前所选项目的正上方插入一个项目。代码(我认为是来自EditableTreeviewDemo): 我想我需要的是当前第一行的索引?我怎么得到这个 作为一个附带问题,当插入一行时,当前索引会发生什么变化?它是否继续指向同一项或同一行?首先,您必须知道insertRow是qabstractemmodel中的一个函数,它将调用insertRows(带有s)。如果要允许在模型中插入数据,必须在模型子类中重新定义此函数

在我的应用程序中,我想在QTreeView的顶部插入一个项目

到目前为止,我所拥有的将在当前所选项目的正上方插入一个项目。代码(我认为是来自EditableTreeviewDemo):

我想我需要的是当前第一行的索引?我怎么得到这个


作为一个附带问题,当插入一行时,当前索引会发生什么变化?它是否继续指向同一项或同一行?

首先,您必须知道
insertRow
qabstractemmodel
中的一个函数,它将调用
insertRows
(带有s)。如果要允许在模型中插入数据,必须在模型子类中重新定义此函数

还认为顶层索引的任何父级都是无效的QMODEL索引。那么需要做的是:

model->insertRow(0, QModelIndex());
由于这是第二个参数的默认值,只需调用:

model->insertRow(0);
然后,在重新定义insertRows时,只需检查父索引的有效性,以确保在您希望的位置创建新闻基础数据


对于您的问题,在模型中插入数据不会影响当前和选定的项目。

首先,您必须知道,
insertRow
是来自
qabstractemmodel
的函数,它将调用
insertRows
(带有s)。如果要允许在模型中插入数据,必须在模型子类中重新定义此函数

还认为顶层索引的任何父级都是无效的QMODEL索引。那么需要做的是:

model->insertRow(0, QModelIndex());
由于这是第二个参数的默认值,只需调用:

model->insertRow(0);
然后,在重新定义insertRows时,只需检查父索引的有效性,以确保在您希望的位置创建新闻基础数据


对于您的问题,在模型中插入数据不会影响当前和选定的项目。

首先,您必须知道,
insertRow
是来自
qabstractemmodel
的函数,它将调用
insertRows
(带有s)。如果要允许在模型中插入数据,必须在模型子类中重新定义此函数

还认为顶层索引的任何父级都是无效的QMODEL索引。那么需要做的是:

model->insertRow(0, QModelIndex());
由于这是第二个参数的默认值,只需调用:

model->insertRow(0);
然后,在重新定义insertRows时,只需检查父索引的有效性,以确保在您希望的位置创建新闻基础数据


对于您的问题,在模型中插入数据不会影响当前和选定的项目。

首先,您必须知道,
insertRow
是来自
qabstractemmodel
的函数,它将调用
insertRows
(带有s)。如果要允许在模型中插入数据,必须在模型子类中重新定义此函数

还认为顶层索引的任何父级都是无效的QMODEL索引。那么需要做的是:

model->insertRow(0, QModelIndex());
由于这是第二个参数的默认值,只需调用:

model->insertRow(0);
然后,在重新定义insertRows时,只需检查父索引的有效性,以确保在您希望的位置创建新闻基础数据


对于您的问题,在模型中插入数据不会影响当前项目和所选项目。

谢谢您的回答和解释。谢谢您的回答和解释。谢谢您的回答和解释。谢谢您的回答和解释。谢谢您的回答和解释。