QtののコンボボックスではQObjectを追加
質問
私は、私が作成したカスタムクラスを持って、MyClassのは言います。今すぐ下のコンボボックスで2番目のパラメータとしてはMyClassの参照への参照を追加する方法:
> UI-> comboBox->のaddItem( "アイテム1");
目的は、私はそれに応じてMyClassのプロセスの特定のクラスのインスタンスを取得したいでも変更項目が発射されたときにされます。
解決
まず、あなたはタイプができるようにすることを、 Q_DECLARE_METATYPE(MyClass*)
して使用する必要がありますQVariant
で使用。そして、あなたはこのように項目を追加することができます:
this->ui->comboBox->addItem("item-1", QVariant::fromValue(myClass));
そして、それを取り戻すます:
this->ui->combobox->itemData(x).value<MyClass*>();
他のヒント
上記の回答構文が少し間違っている、
使用Q_DECLARE_METATYPEタイプQVariantに使用することができるようにMyClassのヘッダファイル内の(MyClassの*)。
このように項目を追加します:
> UI-> comboBox->のaddItem( "アイテム1"、QVariant ::場合、fromValue(MYCLASS));
そして、それを取り戻します。 this-> UI-> combobox-> ITEMDATA(X).VALUE();
所属していません StackOverflow