Вопрос

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

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

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

Это было полезно?

Решение

Сначала вам нужно использовать 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();

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top