首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用QStandardItem mimeData()方法

调用QStandardItem mimeData()方法
EN

Stack Overflow用户
提问于 2015-04-09 23:49:16
回答 1查看 364关注 0票数 1

在我的应用程序中,我有一个QTableView和一个QTreeView。我需要从表视图中拖放到树视图中。我有这个工作,但我重新工作的应用程序,以便图形用户界面元素是在C++中创建的,这已停止工作。

我可以从表中拿起一项,并将其放到树上-一切看起来都很好。但是,由于没有调用表模型的mimeData()方法,因此删除的数据是不完整的。

如何让拖放操作调用mimeData()方法?

表的模型是基于QStandardItemModel的。

EN

回答 1

Stack Overflow用户

发布于 2016-01-16 09:59:18

我的代码也有类似的问题。确保正确覆盖mimeData。例如,一些示例将原型显示为:

代码语言:javascript
复制
QMimeData *mimeData(const QList<QTreeWidgetItem *> &items) const;

而正确的原型是:

代码语言:javascript
复制
QMimeData * mimeData(const QList<QTreeWidgetItem *> items) const;

(请注意项目前面缺少的引用)。如果实现不正确,就不会覆盖mimeData(),而是实现另一个mimeData()函数。

一个简单的检查方法是声明一个要覆盖的函数,但将其返回类型从QMimeData*更改为bool,例如:

代码语言:javascript
复制
bool mimeData(const QList<QTreeWidgetItem *> items) const;

如果你重写了一个正确的函数,你的代码将不会被编译,因为返回类型冲突(不允许你只重写返回类型)。如果您的代码编译得很好,那么您并没有覆盖任何东西,而是声明了一个新函数。检查函数签名。

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

https://stackoverflow.com/questions/29543203

复制
相关文章

相似问题

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