[solved]Drag & Drop zw. 2 QListView Einträgen

Alles rund um die Programmierung mit Qt
Antworten
hakaishi
Beiträge: 62
Registriert: 8. Dezember 2009 18:25

[solved]Drag & Drop zw. 2 QListView Einträgen

Beitrag von hakaishi »

Hallo zusammen,

ich habe in einem QListView Ordner aufgelistet und in einem zweiten die Dateien (mittels QFileSystemModel) und würde gerne die Dateien von einem Ordner in einen anderen verschieben.

Folgendes habe ich versucht:

Code: Alles auswählen

     splitter = new QSplitter(centralwidget);
     gridLayout->addWidget(splitter, 0, 0);

     fModel = new QFileSystemModel(this);
     fModel->setRootPath(origPath);
     fModel->setFilter(QDir::Dirs | QDir::NoDotAndDotDot);
     fModel->setSupportedDragActions(Qt::MoveAction);

     nModel = new QFileSystemModel(this);
     nModel->setRootPath(origPath); //just as an example
     nModel->setFilter(QDir::Files);
     nModel->setSupportedDragActions(Qt::MoveAction);

     nbList = new QListView(splitter); //note book list
     nbList->setModel(fModel);
     nbList->setRootIndex(fModel->index(origPath));
     nbList->setContextMenuPolicy(Qt::CustomContextMenu);
     nbList->setDefaultDropAction(Qt::MoveAction);
     nbList->setDragDropMode(QAbstractItemView::DropOnly);
     nbList->setSelectionMode(QAbstractItemView::ExtendedSelection);
     nbList->setDropIndicatorShown(true);

     nList = new QListView(splitter);  //note list
     nList->setModel(nModel);
     nList->setRootIndex(nModel->index(origPath));
     nList->setContextMenuPolicy(Qt::CustomContextMenu);
     nList->setDragDropMode(QAbstractItemView::DragOnly);
     nList->setSelectionMode(QAbstractItemView::ExtendedSelection);
     nList->setDropIndicatorShown(true);
Aber das funktioniert so anscheinend nicht... kann mir bitte jemand auf die Sprünge helfen?

Viele Grüße, Hakaishi
Zuletzt geändert von hakaishi am 10. Mai 2012 20:56, insgesamt 1-mal geändert.
hakaishi
Beiträge: 62
Registriert: 8. Dezember 2009 18:25

Re: Drag & Drop zw. 2 QListView Einträgen

Beitrag von hakaishi »

Der vollständige Code liegt hier: https://github.com/hakaishi/nobleNote
hakaishi
Beiträge: 62
Registriert: 8. Dezember 2009 18:25

Re: Drag & Drop zw. 2 QListView Einträgen

Beitrag von hakaishi »

Kann mir niemand einen Tipp geben, was falsch ist bzw. was fehlt?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Drag & Drop zw. 2 QListView Einträgen

Beitrag von Christian81 »

Im Code ist noch gar nichts für Drag'n'Drop vorbereitet. Wie Drag'n'Drop funktioniert steht hier: http://doc.trolltech.com/4.7/examples-draganddrop.html
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
hakaishi
Beiträge: 62
Registriert: 8. Dezember 2009 18:25

Re: Drag & Drop zw. 2 QListView Einträgen

Beitrag von hakaishi »

Ok, damit funktioniert es jetzt:

Code: Alles auswählen

     QList<QListView*> listViews;
     listViews << folderList << noteList;
     foreach(QListView* list, listViews)
     {
        list->setContextMenuPolicy(Qt::CustomContextMenu);

        list->setDragDropMode(QAbstractItemView::DragDrop);
        list->viewport()->setAcceptDrops(true);
        list->setDropIndicatorShown(true);
        list->setDefaultDropAction(Qt::MoveAction);
     }
     noteList->setDragEnabled(true);
     folderList->setDragEnabled(false);
Gruß, Hakaishi
Antworten