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
[gelöst] [QT4] Drag'nDrop QListView, QTreeView
[gelöst] [QT4] Drag'nDrop QListView, QTreeView
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.
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):
das dahinterstehende von QAbstractItemModel erbende Model hat folgende Funktionen, die das drag/drop ermöglichen sollten:
aber eigentlich müsste das Model ja stimmen, schließlich kann ich auf ja auf das ListView droppen...
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 );
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
{
...
}Glaube an eine Lösung, nur dann kannst du auch eine finden.
klar, alles klar....
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...
Code: Alles auswählen
QWidget::setAcceptDrops ( true );Glaube an eine Lösung, nur dann kannst du auch eine finden.