[gelöst] [QT4] Drag'nDrop QListView, QTreeView

Alles rund um die Programmierung mit Qt
Antworten
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

[gelöst] [QT4] Drag'nDrop QListView, QTreeView

Beitrag von Esleborn »

hi,
ich hab ein Problem mit Drag'nDrop. Und zwar hab ich ein eigenes QAbstractItemModel auf welches ich zwei Views laufen lasse (ein QTreeView und ein QListView). (zugehöriges Bild) Jetzt muss ich Drag'nDrop aktivieren... innerhalb des QTreeViews, zwischen QTree- und QListView, sowie rein innerhalb des QListViews [man dropt auf ein Item]

Kann mir einer helfen?

Elgrimm Esleborn
Zuletzt geändert von Esleborn am 22. Januar 2006 14:12, insgesamt 5-mal geändert.
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Beitrag von Esleborn »

sry
is klar...

QAbstractItemModel::dropMimeData usw...
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Beitrag von Esleborn »

naja doch nicht ganz klar...

zwar klappt es vom QTreeView Abkömmling auf das QListView zu droppen, aber andersrum wird das droppen verboten (auch entsprechender Cursor) und auch das Droppen innerhalb des QTreeView ist unmöglich...

hat einer ne Idee??

beide Views haben (falls es je eine Rolle spielen sollte):

Code: Alles auswählen

setDragEnabled ( true );
setDropIndicatorShown ( true );
das dahinterstehende von QAbstractItemModel erbende Model hat folgende Funktionen, die das drag/drop ermöglichen sollten:

Code: Alles auswählen

Qt::ItemFlags C_HierachyModel::flags ( const QModelIndex &f_index ) const
{
   if ( !f_index.isValid ( ) )
      return Qt::ItemIsEnabled | Qt::ItemIsDropEnabled;

   return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled;
}

bool C_HierachyModel::dropMimeData ( const QMimeData *fp_data, Qt::DropAction f_action, int f_row,
/* <-- */		/* <-- */	/* <-- */	int f_column, const QModelIndex &f_parent )
{
   ...
}

QMimeData* C_HierachyModel::mimeData ( const QModelIndexList &fl_indexes ) const
{
   ...
}

QStringList C_HierachyModel::mimeTypes ( ) const
{
   ...
}
aber eigentlich müsste das Model ja stimmen, schließlich kann ich auf ja auf das ListView droppen...
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Beitrag von Esleborn »

klar, alles klar....

Code: Alles auswählen

QWidget::setAcceptDrops ( true );
muss bei QTreeView, aber nicht bei QListView rein... da acceptDrops bei QListView standardmäßig true ist, bei QTreeView aber standardmäßig false... warum auch immer...
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Antworten