2009-10-19 4 views
1

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

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

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

ответ

5

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

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

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

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

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

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

добавить товар так:

this-> ui-> comboBox-> AddItem ("пункт-1", QVariant :: fromValue (MyClass));

И верните его: this-> ui-> combobox-> itemData (x) .value();