Drag & drop from/to desktop or folder in Windows or Linux



  • Hello, good afternoon,

    (sorry for my English of bing translator)

    I'm starting to migrate to Qt from Borland C ++ Builder, the last version I used is the XE, and I regret having taken so much time to migrate, Qt seems a lot simpler and faster to work that BCB.

    Like all beginner in this IDE and the Qt libraries, I am with some problems for which I ask to help me.

    I have an application with a QTreeWidget and a QListWidget, and each widget must be able to accept lists of files dragged from a Windows folder (desktop as folder or any other folder) or Linux and should also be able to drag lists of items and drop them into a folder.

    In BCB (Windows) I did it this way:

    On the header of the form's class, he placed these "capture" in the public section:

    @
    BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, WmDropFiles)
    END_MESSAGE_MAP( TForm )
    @

    and I implemented them as well:

    @
    void __fastcall TfrmBandeja::WmDropFiles(TWMDropFiles& Message)
    {
    wchar_t buff[MAX_PATH];
    HDROP hDrop = (HDROP)Message.Drop;
    int numFiles = DragQueryFile(hDrop, -1, NULL, NULL);
    // PRUEBA
    TStringList* lst = new TStringList;

    for (int i=0;i < numFiles;i++)
    {

    DragQueryFile(hDrop, i, buff, sizeof(buff));

    // process the file in 'buff'

    lst->Add( buff );
    }
    DragFinish(hDrop);

    expandirDirectorios( lst );

    FEvArchivosIngresados( (TObject*)this, (TStringList*)lst ); // disparador del evento
    }
    @

    I use Qt compiled with VC2010, then I guess that, in Windows not must be complicated to implement it. By the side of Linux, if I drag a file from or to the desktop, will depend on the desktop that I use, but if I drag a folder or from, I guess that the implementation should be quite specific Qt.

    So:

    If you would like I can implement the capture of these events in Qt?

    In addition:

    As I drag the Widget items (which are files) and drop them into a folder?

    Thank you very much from now with all help or guide that I can give.

    Best regards.

    Darío-

    [[merged two identical posts, Tobias]]



  • Sorry for asking a question about a fully documented topic.

    I assumed that the documented Drag and Drop was for operations between widgets of the same application. They are remnants of BCB.

    Full documentation: "http://qt-project.org/doc/qt-4.8/dnd.html":http://qt-project.org/doc/qt-4.8/dnd.html

    Best regards.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.