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