void DragWidget::dragEnterEvent(QDragEnterEvent *event){//! [4] //! [5]if (event->mimeData()->hasFormat("application/x-fridgemagnet")) {if (children().contains(event->source())) {event->setDropAction(Qt::MoveAction);event->accept();} else {event->acceptProposedAction();//! [5] //! [6]}//! [6] //! [7]} else if (event->mimeData()->hasText()) {event->acceptProposedAction();} else {event->ignore();}}
2 回答

開心每一天1111
TA貢獻1836條經驗 獲得超13個贊
這是一個拖拽事件的函數,我們把文件拖拽進程序界面打開,之前必須setAcceptDrops(true)了以后拖拽,但是只設置acceptDrops還不夠,還需要在dragEnterEvent事件中對拖入的對象進行篩選,判斷mimeData的類型是否是你能處理的,如果是,則調用event->acceptProposedAction()放行。拖放結束后會產生dropEvent事件,在那里進行最后的放置操作。總之這是拖拽事件函數的一個篩選事件并放置的函數。
- 2 回答
- 0 關注
- 138 瀏覽
添加回答
舉報
0/150
提交
取消