Domanda

Ho una classe personalizzata che ho creato, diciamo MyClass. Ora come aggiungere un riferimento al riferimento di MyClass come secondo parametro nella casella combinata di seguito:

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

Scopo è quello di quando l'oggetto modificato anche è sparato, voglio ottenere tale istanza specifica classe di MyClass e il processo di conseguenza.

È stato utile?

Soluzione

Per prima cosa è necessario utilizzare Q_DECLARE_METATYPE(MyClass*) , in modo che il tipo può essere utilizzato in QVariant. Quindi è possibile aggiungere la voce in questo modo:

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

E tornare indietro:

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

Altri suggerimenti

Sopra sintassi risposta è un po 'scorretto,

utilizzare Q_DECLARE_METATYPE (MyClass *), nel file di intestazione MyClass, in modo che il tipo può essere utilizzato in QVariant.

aggiungere la voce in questo modo:

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

E tornare indietro: this-> UI-> combobox-> itemData (x) .value ();

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top