Ответ 1
Существует еще один конструктор для void *: QVariant::QVariant(int typeOrUserType, const void * copy)
, где вы должны передать уникальное целое число для представления типа указателя.
Но, как указано в документации, вы можете объявить свой тип указателя с помощью Q_DECLARE_METATYPE(Calendar*)
и использовать QVariant::fromValue<Calendar*>(...)
и QVariant::value<Calendar*>()
для хранения и получения значения.
Или вместо этого, поскольку вместо обычной модели вы используете QListWidget
, вы можете просто подклассом QListWidgetItem
и добавить переменную-член Calendar*
с требуемыми аксессуарами, чтобы избежать накладных расходов на использование QVariant
.