Я использую QVariant для хранения объекта внутри Qcombobox, похоже, это работает нормально. Это код реализации:
Добавьте тип в QVariant в заголовке:
Q_DECLARE_METATYPE(CDiscRecorder*)
pDiscRecorder представлен как CDiscRecorder:
CDiscRecorder* pDiscRecorder = new CDiscRecorder();
Затем сохраняется в поле со списком
ui->cbDrives->addItem(QString::fromWCharArray(strName), QVariant::fromValue(pDiscRecorder));
Проблема возникает, когда я пытаюсь вытащить его:
CDiscRecorder* discRecorder = this->ui->cbDrives->itemData(index).value<CDiscRecorder*>;
Я получаю сообщение об ошибке:
error C3867: 'QVariant::value': function call missing argument list; use '&QVariant::value' to create a pointer to member
Я безуспешно пытался внедрить подсказку в код ошибки, я следил за потоком Добавьте QObject в поле со списком Qt, чтобы реализовать это поведение, как вернуть мой объект?
Спасибо