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