首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在QAbstractItemView中查找拖放操作的结束

在QAbstractItemView中查找拖放操作的结束
EN

Stack Overflow用户
提问于 2014-05-17 17:05:31
回答 1查看 154关注 0票数 1

我创建了由QSortFilterProxyModel继承的自定义代理模型。我的上述代理模型的源模型也是由QAbstractTableModel继承的自定义模型。然后,我将自定义代理模型设置为QTableView。

在这个自定义代理模型中,我重新实现了mimeData(..)函数。如下所示。

代码语言:javascript
复制
QMimeData* CustomProxyModel::mimeData( const QModelIndexList & rListIndexes ) const
{
    QMimeData *pMimeData = new QMimeData();

    //some code here

    connect(pMimeData, SIGNAL( destroyed(QObject*) ), this, SLOT( OnDestroyDraggedItem() ) );

    return pMimeData;
}

在Qt4.7中,在用户将QTableView的一项放入某个位置后不久,就调用了OnDestroyDraggedItem() slot。换句话说,QMimeData对象在拖放操作后不久就会被删除。

但在Qt5.1中,OnDestroyDraggedItem()插槽从未被调用过。换句话说,在拖放操作之后,QMimeData对象永远不会被删除。

我做错了什么吗?或者Qt 5.1在拖放操作后出现了内存泄漏?有没有其他方法可以找到拖放操作的结束?

EN

回答 1

Stack Overflow用户

发布于 2016-06-16 06:04:53

也许有点晚了--但你不能继承QMimeData,在析构函数中做点什么吗?当然应该是小而安全的代码--在析构函数中抛出异常会导致奇怪的行为:)

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

https://stackoverflow.com/questions/23709529

复制
相关文章

相似问题

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