将Drag& Drop连接到QListWidget中的函数的最佳方法

时间:2016-12-06 22:55:49

标签: c++ qt

我有QListWidget个项目。

项目'订单存储在单独的文档类中。

我可以移动和更改项目的顺序,但是每当通过拖放操作修改QListWidget订单时,我想更新文档类。

这是一个抽象的想法:

myListWidget::myListWidget(QWidget *parent) : QListWidget(parent)
{
    /*option*/ connect(...);
    /*option*/ setDragDropMode(QAbstractItemView::InternalMove);
}

void myListWidget::updateOrder()
{
    for(i=0; i<count(); i++) {
         ...function that updates the other class by QListWidget::item(int row)
    }
}

我已经看到QListWidget没有丢弃信号,所以我尝试通过以下方式将信号与子类模型相关联:

connect(model(), SIGNAL(layoutChanged()), this, SLOT(updateOrder()));

这没有用。

有人可以建议如何实现我的目标吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试在myListWidget中重新实现dropEvent?

http://doc.qt.io/qt-5/qlistwidget.html#dropEvent

&#34;在此窗口小部件上删除拖动时,将调用此事件处理程序。事件在事件参数中传递。&#34;