I have a QListWidget of calendars. Each QListWidgetItem is logically associated with an instance of Calendar, which is a class that belongs to the Model side of the application.
Can I store this association in the form of a pointer using QListWidgetItem::setData? When I attempt to do this, I get the following error:
error: ‘QVariant::QVariant(void*)’ is private
There is another constructor for void*:
QVariant::QVariant(int typeOrUserType, const void * copy)where you should pass an unique integer to represent the pointer type.But as stated by the documentation, you could declare your pointer type with
Q_DECLARE_METATYPE(Calendar*)and useQVariant::fromValue<Calendar*>(...)andQVariant::value<Calendar*>()to store and retrieve the value.Or instead, because you are using a
QListWidgetinstead of a regular model, you can just subclassQListWidgetItem, and add aCalendar*member variable with the required accessors, to avoid the overhead of usingQVariant.