在Qt的组合框中添加QObject

在Qt的组合框中添加QObject,qt,qcombobox,qobject,Qt,Qcombobox,Qobject,我创建了一个自定义类,比如MyClass。现在,如何在下面的组合框中添加对MyClass引用的引用作为第二个参数: 此->用户界面->组合框->添加项(“第1项”) 目的是在触发item changed时,我希望获得MyClass的特定类实例并相应地进行处理。首先需要使用,以便该类型可以在QVariant中使用。然后您可以像这样添加项目: this->ui->comboBox->addItem("item-1", QVariant::fromValue(myClass));

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

此->用户界面->组合框->添加项(“第1项”)

目的是在触发item changed时,我希望获得MyClass的特定类实例并相应地进行处理。

首先需要使用,以便该类型可以在
QVariant
中使用。然后您可以像这样添加项目:

this->ui->comboBox->addItem("item-1", QVariant::fromValue(myClass));
把它拿回来:

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

上面的答案语法有点不正确

在MyClass头文件中使用Q_DECLARE_元类型(MyClass*),以便该类型可以在QVariant中使用

添加如下项:

this->ui->comboBox->addItem("item-1", QVariant::fromValue(myClass));
这个->用户界面->组合框->添加项(“项-1”,QVariant::fromValue(myClass))

把它拿回来: 这个->用户界面->组合框->项目数据(x).value()