Manchmal entsteht der Effekt, dass dropEvent erst aufgerufen wird, wenn man nochmal ganz wenig die Maus verschiebt.
Hier starte ich die Drag&Drop Aktion:
Code: Alles auswählen
void TreeView::mouseMoveEvent( QMouseEvent *event)
{
QTreeView::mouseMoveEvent(event);
if (!(event->buttons() & Qt::LeftButton))
return;
if ((event->pos() - _dragStartPosition).manhattanLength()
< QApplication::startDragDistance())
return;
QModelIndex Index = currentIndex();
TreeModel* treemodel = (TreeModel*) model();
if ( itemID.isValid() )
{
QDrag *drag = new QDrag( this );
QMimeData *mimeData = new QMimeData;
drag->setMimeData( mimeData );
drag->exec( );
}
}Code: Alles auswählen
void MeinGraphicItem::dropEvent ( QGraphicsSceneDragDropEvent * event )
{
QString MimeText;
const QMimeData * pMimeData = event->mimeData();
if ( pMimeData->hasText())
{
MimeText = pMimeData->text();
}
{
QStringList DataList = MimeText.split ( ";" );
...
QGraphicsItem::dropEvent ( event );
}