【问题标题】:QListView - mixed drag modeQListView - 混合拖动模式
【发布时间】:2012-07-09 13:15:34
【问题描述】:

我有一个 ViewMode 设置为 IconMode 的 QListView。我想实现以下 DnD 行为:

  • 如果在视图内拖动列表视图项,则仅更改项目在视图中的位置。这与将 DragDropMode 设置为 InternalMove 相同。
  • 如果将列表项移出视图,则可以将其复制到另一个外部视图。在这种情况下,DragDropMode 等于 DragOnly。

如何混合这两种模式以使视图支持两种行为?

【问题讨论】:

    标签: qt drag-and-drop


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2014-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-04
      • 2011-04-13
      相关资源
      最近更新 更多