2013-02-15 54 views

回答

31

超載dragEnterEvent()dropEvent()MainWindow類,並調用setAcceptDrops()在構造函數中:

MainWindow::MainWindow(QWidget *parent) 
{ 
    .......... 
    setAcceptDrops(true); 
} 

void MainWindow::dragEnterEvent(QDragEnterEvent *e) 
{ 
    if (e->mimeData()->hasUrls()) { 
     e->acceptProposedAction(); 
    } 
} 

void MainWindow::dropEvent(QDropEvent *e) 
{ 
    foreach (const QUrl &url, e->mimeData()->urls()) { 
     QString fileName = url.toLocalFile(); 
     qDebug() << "Dropped file:" << fileName; 
    } 
} 
+0

感謝您承擔編寫代碼的所有痛苦! – 2013-02-15 14:43:22

+0

不客氣,我沒有寫代碼,但是從我的源代碼拷貝過來))) – borisbn 2013-02-16 05:06:38

+1

只需要說一下:我不得不重寫'MainWindow :: dragMoveEvent()'方法,我只是'acceptProposedAction()' '事件。否則它不適合我。 – Ancurio 2013-12-21 13:55:05

3

我在此鏈接中獲得了全部代碼:Drag and Drop files into your application。您可以從此頁面下載.zip

的代碼工作完美的我,那我應該做的,使代碼工作的唯一的東西是我mainwindow.h包括:

#include <QMimeData>

這一切,我希望它能夠幫你。

相關問題