Добавьте QObject в поле со списком Qt

У меня есть собственный класс, который я создал, скажем, MyClass. Теперь, как добавить ссылку на ссылку MyClass в качестве второго параметра в поле со списком ниже:

this-> ui-> comboBox-> addItem ("item-1",);

Цель состоит в том, чтобы, когда элемент изменился даже при запуске, я хочу получить этот конкретный экземпляр класса MyClass и обработать его соответствующим образом.

2 ответа

Решение

Сначала вам нужно использовать Q_DECLARE_METATYPE(MyClass*), так что тип может быть использован в QVariant, Затем вы можете добавить элемент следующим образом:

this->ui->comboBox->addItem("item-1", QVariant::fromValue(myClass));

И получить его обратно:

this->ui->combobox->itemData(x).value<MyClass*>();

Выше синтаксис ответа немного неправильный,

используйте Q_DECLARE_METATYPE(MyClass*) в заголовочном файле MyClass, чтобы тип можно было использовать в QVariant.

добавить элемент, как это:

this-> ui-> comboBox-> addItem ("item-1", QVariant:: fromValue (myClass));

И получить его обратно: this->ui->combobox->itemData(x).value();

Другие вопросы по тегам