首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用QListWidgetItem::setData存储指针

使用QListWidgetItem::setData存储指针
EN

Stack Overflow用户
提问于 2012-02-12 10:14:24
回答 2查看 7.9K关注 0票数 11

我有一个日历的QListWidget。每个QListWidgetItem在逻辑上都与Calendar的一个实例相关联,该实例属于应用程序的模型端。

我可以使用QListWidgetItem::setData以指针的形式存储这个关联吗?当我尝试这样做时,我会得到以下错误:

错误:“QVariant::QVariant(void*)”是私有

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-12 15:42:33

还有一个用于void*:QVariant::QVariant(int typeOrUserType, const void * copy)的构造函数,您应该传递一个唯一的整数来表示指针类型。

但是,正如文档所述,您可以使用Q_DECLARE_METATYPE(Calendar*)声明指针类型,并使用QVariant::fromValue<Calendar*>(...)QVariant::value<Calendar*>()存储和检索该值。

或者,因为您使用的是QListWidget而不是常规模型,所以您只需子类QListWidgetItem,并添加一个带有所需访问器的Calendar*成员变量,以避免使用QVariant的开销。

票数 28
EN

Stack Overflow用户

发布于 2012-10-10 14:04:38

我建议也考虑一下这个解决方案,我认为这是非常优雅的:(语法错误很小,但是您会很快发现它们,或者编译器会发出错误)。

https://web.archive.org/web/20171025163314/http://blog.bigpixel.ro/2010/04/storing-pointer-in-qvariant/

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

https://stackoverflow.com/questions/9248001

复制
相关文章

相似问题

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