Frage

Ich habe eine benutzerdefinierte Klasse I erstellt, sagen MyClass. Nun, wie Sie einen Verweis auf MyClass der Referenz als zweiten Parameter in dem Kombinationsfeld unten hinzuzufügen:

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

Ziel ist es, wenn Element geändert selbst abgefeuert wird, ich will demnach, dass bestimmte Klasseninstanz von MyClass und Verfahren erhalten.

War es hilfreich?

Lösung

Zuerst müssen Sie verwenden Q_DECLARE_METATYPE(MyClass*) , so dass der Typ sein kann, in QVariant verwendet. Dann können Sie den Artikel wie folgt hinzu:

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

Und es zurück:

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

Andere Tipps

Über Antwort Syntax ist etwas falsch,

Verwendung Q_DECLARE_METATYPE (MyClass *), in der MyClass Header-Datei, so dass die Art in QVariant verwendet werden.

fügen Sie den Artikel wie folgt:

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

Und es zurück: this-> UI-> combobox-> itemData (x) .value ();

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top