我有一个QListWidget日历.每个QListWidgetItem逻辑上都与一个实例关联,该实例Calendar是属于应用程序的Model端的类.
我可以使用指针的形式存储此关联QListWidgetItem::setData吗?当我尝试这样做时,我收到以下错误:
错误:'QVariant :: QVariant(void*)'是私有的
ale*_*sdm 27
void*还有另一个构造函数:QVariant::QVariant(int typeOrUserType, const void * copy)您应该传递一个唯一的整数来表示指针类型.
但正如文档所述,您可以Q_DECLARE_METATYPE(Calendar*)使用QVariant::fromValue<Calendar*>(...)和声明指针类型并使用和QVariant::value<Calendar*>()存储和检索值.
或者,因为您使用的是QListWidget而不是常规模型,您可以只是子类化QListWidgetItem,并添加Calendar*具有所需访问器的成员变量,以避免使用的开销QVariant.