2013-02-15 9 views

Odpowiedz

31

przeciążeniem dragEnterEvent() i dropEvent() w swojej klasie MainWindow i wywołać setAcceptDrops() w konstruktorze:

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

dziękuję za podjęcie wszystkich bólu, aby napisać kod! –

+0

Nie ma sprawy. Nie napisałem kodu, ale skopiowałem go z mojego źródła))) – borisbn

+1

Po prostu notka: Musiałem nadpisać także metodę 'MainWindow :: dragMoveEvent()', w której po prostu 'acceptProposedAction()' zdarzenie. W przeciwnym razie nie byłoby to dla mnie. – Ancurio

3

Otrzymałem cały kod pod tym linkiem: Drag and Drop files into your application. Na tej stronie można pobrać .zip.

Kod pracował idealny dla mnie, jedyną rzeczą, którą należy zrobić, aby uczynić tę pracę kodu było to w moim mainwindow.h:

#include <QMimeData>

To wszystko, mam nadzieję, że może pomóc Ci.

Powiązane problemy