Добавьте 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();