我有一个我创建的自定义类,比如MyClass。现在,如何在下面的组合框中添加对MyClass引用的引用作为第二个参数:
this-> ui-> comboBox-> addItem(“item-1”,);
目的是当项目更改时甚至被触发,我想获得MyClass的特定类实例并进行相应的处理。
答案 0 :(得分:5)
首先,您需要使用Q_DECLARE_METATYPE(MyClass*)
,以便可以在QVariant
中使用该类型。然后你可以像这样添加项目:
this->ui->comboBox->addItem("item-1", QVariant::fromValue(myClass));
把它拿回来:
this->ui->combobox->itemData(x).value<MyClass*>();
答案 1 :(得分:1)
以上答案语法略有不正确,
在MyClass头文件中使用Q_DECLARE_METATYPE(MyClass *),以便可以在QVariant中使用该类型。
添加如下项目:
this-&gt; ui-&gt; comboBox-&gt; addItem(“item-1”,QVariant :: fromValue(myClass));
然后回复: 这 - &GT; UI-&GT; combobox-&GT;的ItemData(X)。价值();