Seite 1 von 1

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

Verfasst: 2. Januar 2006 15:10
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

Verfasst: 2. Januar 2006 18:09
von Esleborn
sry
is klar...

QAbstractItemModel::dropMimeData usw...

Verfasst: 17. Januar 2006 00:25
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...

Verfasst: 22. Januar 2006 14:12
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...