【QT】QT的dragEnterEvent和dropEvent事件失灵解决办法

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时,发现没进入着两个事件的函数进行执行。通过网上查找的资料,有两种解决方法:

  1. 开启该控件接收drag和drop事件
    this->setAcceptDrops(true); //启动拖动事件
    
  2. 设置主控件的鼠标跟踪
    在这里插入图片描述

经过以上两种设置,发现,还是无法接收dragEnterEvent和dropEvent事件。

测试发现,需要实现dragEnterEvent事件,然后调用accept()函数,把事件传递给dragEnterEvent和dropEvent。

void myLabel::dragEnterEvent(QDragEnterEvent *event)
{
    qDebug() << "dragEnterEvent" << event->mimeData();
    event->accept();
}

===end of file

发布了17 篇原创文章 · 获赞 11 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/u010561799/article/details/100057502