【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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章