0

ViewMode が IconMode に設定された QListView があります。次の DnD 動作を実現したいと思います。

  • リスト ビュー アイテムをビュー内にドラッグすると、ビュー内のアイテムの位置のみが変更されます。これは、DragDropMode を InternalMove に設定するのと同じです。
  • リスト アイテムがビューの外に移動された場合は、別の外部ビューにコピーできます。この場合、DragDropMode は DragOnly と同じです。

ビューで両方の動作がサポートされるように、2 つのモードを混在させるにはどうすればよいですか?

4

1 に答える 1

1

ビューのdropEventを次のようにオーバーライドすることで、これを実行できる場合があります。

void MyListView::dropEvent( QDropEvent* e )
{
    if( e->source() != this )
    {
        // something comes from the outside
        // what to do? return?
        return;
    }
    else
    {
        // event comes from the view itself, let's do some stuff
        // for example call the base class default event
        QAbstractItemView::dropEvent(e);
    }
}

正しいフラグはこれを行うことQAbstractItemView::DragDropだと思います。

于 2012-07-09T14:51:35.967 に答える