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貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
這是一個(gè)拖拽事件的函數(shù),我們把文件拖拽進(jìn)程序界面打開,之前必須setAcceptDrops(true)了以后拖拽,但是只設(shè)置acceptDrops還不夠,還需要在dragEnterEvent事件中對(duì)拖入的對(duì)象進(jìn)行篩選,判斷mimeData的類型是否是你能處理的,如果是,則調(diào)用event->acceptProposedAction()放行。拖放結(jié)束后會(huì)產(chǎn)生dropEvent事件,在那里進(jìn)行最后的放置操作??傊@是拖拽事件函數(shù)的一個(gè)篩選事件并放置的函數(shù)。

千萬里不及你
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊
拖放和移動(dòng)事件的處理函數(shù)。對(duì)應(yīng)的是放dropEvent函數(shù)。至于怎么弄,你直接百度一下這相關(guān)函數(shù)就好了。不做多解釋咯
- 2 回答
- 0 關(guān)注
- 133 瀏覽
添加回答
舉報(bào)
0/150
提交
取消