Я использую QVariant для хранения объекта внутри Qcombobox. Кажется, он работает нормально. Это внедрение кода:QT - Как получить значения QVariant из combobox?
Добавить тип в 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
Я попытался реализовать подсказку в коде ошибки не дали никаких результатов, я следовал нить Add QObject in the combo box of Qt реализовать такое поведение, как можно получить свой объект обратно?
Благодаря
спасибо, сэр =) ~ – rreeves