在Qt的组合框中添加QObject

时间:2009-10-19 03:53:04

标签: qt qcombobox qobject

我有一个我创建的自定义类,比如MyClass。现在,如何在下面的组合框中添加对MyClass引用的引用作为第二个参数:

this-> ui-> comboBox-> addItem(“item-1”,);

目的是当项目更改时甚至被触发,我想获得MyClass的特定类实例并进行相应的处理。

2 个答案:

答案 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)。价值();