neu*_*rte 4 c++ notifications qt qtreewidget
我将一个QTreeWidget子类化,将其dragDropMode设置为InternalMove并使用自定义项填充它,其中一些可以被拖动,其他可以接受丢弃.用户可以按预期在树周围移动项目.但我需要通知项目顺序的变化并做出适当的反应.不幸的是,没有与我可以连接的树内物品移动相关的信号.
我尝试获取QTreeWidget的底层模型()的句柄,然后连接到其rowsMoved信号,但在内部移动期间似乎没有发出.
我重新实现了QTreeWidget的dropEvent(),但没有办法确定那里的目标行索引.
该dropMimeData()事件不会被调用在所有的内部动作,显然.
我可以尝试其他任何方法吗?谢谢.
在重新实现中dropEvent()
,您应该能够找到目标行索引和项目:
void
subclass::dropEvent(QDropEvent* event)
{
QModelIndex index = indexAt(event->pos());
if (!index.isValid()) { // just in case
event->setDropAction(Qt::IgnoreAction);
return;
}
QTreeWidgetItem* destination_item = itemFromIndex(index);
....
}
Run Code Online (Sandbox Code Playgroud)