首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QListView项的拖放

QListView项的拖放
EN

Stack Overflow用户
提问于 2012-10-16 13:56:30
回答 1查看 9.5K关注 0票数 1

请帮我解决这个问题..。我左边有一个QListView,另一边有一个QWidget。在QListView中,我使用QStandardItem添加了几个项目。现在,我想将QListView项拖放到另一边,QWidget,我也必须对QWidget做同样的操作。可以将QListView项拖放到QListView本身中,方法是

代码语言:javascript
复制
listView.setAcceptDrops(true);
listView.setDragEnabled(true);
listView.setDragDropMode(QAbstractItemView::InternalMove); 

这在QListView内部运行得很好。我希望将QListView项拖放到另一个Widget中。我该怎么做?我知道我必须处理这些事情

代码语言:javascript
复制
void dropEvent(QDropEvent *);
void dragMoveEvent(QDragMoveEvent *);
void dragEnterEvent(QDragEnterEvent *);
void mousePressEvent(QMouseEvent *);

我就这样试过了

代码语言:javascript
复制
void Example::dragMoveEvent(QDragMoveEvent *e)
{
    // The event needs to be accepted here
    e->accept();
}

void Example::dragEnterEvent(QDragEnterEvent *e)
{
    // Set the drop action to be the proposed action.
    e->acceptProposedAction();
}

void Example::dropEvent(QDropEvent *e)
{
    qDebug("Items Dropped");
}

当我刚刚尝试使用一些qDebug()时,当我从QListView中拖动一个项目并将其放到QWidget中,并在"Items Drop“时获得输出时,这是有效的。但是我不知道怎么把我的QListView__'s的东西带过来。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-20 12:48:44

您不必对视图进行子类化。所有的拖放操作都由模型处理,因此您必须对标准模型进行子类化。您可能想看看模型子类参考。当然,您还必须将视图的拖放模式更改为QAbstractItemView::DragDrop,以获得外部拖放。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12916324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档