Pregunta

Tengo una clase personalizada que he creado, por ejemplo MiClase. Ahora, ¿cómo añadir una referencia a la referencia de MiClase como segundo parámetro en el cuadro combinado a continuación:

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

El propósito es que cuando se dispara elemento cambiado aún, quiero conseguir esa instancia clase específica de MiClase y el proceso en consecuencia.

¿Fue útil?

Solución

En primer lugar es necesario utilizar Q_DECLARE_METATYPE(MyClass*) , por lo que el tipo puede ser utilizado en QVariant. A continuación, puede añadir el artículo siguiente:

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

Y recuperarlo:

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

Otros consejos

sintaxis respuesta anterior es ligeramente incorrecto,

El uso Q_DECLARE_METATYPE (MyClass *), en el archivo de cabecera MiClase, por lo que el tipo se puede utilizar en QVariant.

añadir el artículo siguiente:

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

Y recuperarlo: this-> ui-> combobox-> itemData (x) .value ();

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top