Qt没有收到QWidget :: dropEvent

时间:2017-10-30 13:43:27

标签: c++ qt model-view-controller qlistview qstandarditemmodel

我通过QWidget从QListView拖动QStandardItem。 在我的QWidget类中,我实现了dragEnterEvent和dropEvent:

void MyWidget::dragEnterEvent(QDragEnterEvent *event){
    qDebug() << "drag entering: ";
}

void MyWidget::dropEvent(QDropEvent *event){
    qDebug() << "drop received!";
}

它接收dragEntering,但不是drop。 我已经在QWidget类的构造函数中将 acceptDrops 设置为true。我错过了什么? 谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

好吧,我终于得到了解决方案。 我不得不在widget类的dragEnterEvent中添加event->acceptProposedAction();

答案 1 :(得分:0)

另一个失败原因是错误的事件类型(复制和粘贴)。确保它们与事件处理程序匹配:

dragEnterEvent(QDragEnterEvent *event)
dragMoveEvent(QDragMoveEvent *event)
dropEvent(QDropEvent *event)