QT的dragEnterEvent和dropEvent事件失灵解决办法
QT版本Based on Qt 5.12.3 (GCC 5.3.1 20160406 (Red Hat 5.3.1-6), 64 bit)
在实现dragEnterEvent和dropEvent时,发现没进入着两个事件的函数进行执行。通过网上查找的资料,有两种解决方法:
- 开启该控件接收drag和drop事件
this->setAcceptDrops(true); //启动拖动事件
- 设置主控件的鼠标跟踪
经过以上两种设置,发现,还是无法接收dragEnterEvent和dropEvent事件。
测试发现,需要实现dragEnterEvent事件,然后调用accept()函数,把事件传递给dragEnterEvent和dropEvent。
void myLabel::dragEnterEvent(QDragEnterEvent *event)
{
qDebug() << "dragEnterEvent" << event->mimeData();
event->accept();
}
===end of file