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