需要有关QListView中拖放的帮助

时间:2016-05-07 15:51:48

标签: qt drag-and-drop qlistview

我正在QListView中进行拖放操作。为了帮助我指的是itemviews文件夹中的Qt示例拼图。现在问题在于列表视图在IconMode中。请点击以下链接打开图片: -

Dropping item in between two items

现在,如果我将项目拖动到图片中所示的两个项目的中心,则返回无效索引。现在,当我想要获得左项或右项的索引时。从Qt文档我得到的是: -

“当发生丢弃时,对应于父项的模型索引将有效,表示项目上发生了丢弃,或者它将无效,表示丢弃发生在视图中与顶部对应的某处模型的水平。

int beginRow;

if (row != -1)
beginRow = row;

我们首先检查提供的行号,看看我们是否可以使用它来将项目插入到模型中,无论父索引是否有效。

else if (parent.isValid())
beginRow = parent.row();

如果父模型索引有效,则会在项目上发生丢弃。在这个简单的列表模型中,我们找出项目的行号,并使用该值将已删除的项目插入到模型的顶层。

else
beginRow = rowCount(QModelIndex());

当视图中的其他位置出现拖放,并且行号不可用时,我们会将项目附加到模型的顶层。“

但这仅适用于listmode中的QListView。

如果我将鼠标指针放在两个项目之间,则会给出无效索引。我该怎么办呢。请帮助我。

非常感谢。

0 个答案:

没有答案