gpt4 book ai didi

qt - 使用 QListWidgetItem::setData 存储指针

转载 作者:行者123 更新时间:2023-12-04 02:44:08 25 4
gpt4 key购买 nike

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

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

error: 'QVariant::QVariant(void*)' is private

最佳答案

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

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

或者相反,因为您使用的是 QListWidget您可以将 QListWidgetItem 子类化而不是常规模型,并添加 Calendar*具有所需访问器的成员变量,以避免使用 QVariant 的开销.

关于qt - 使用 QListWidgetItem::setData 存储指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9248001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com