2

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

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

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

4

2 回答 2

6

首先你需要使用Q_DECLARE_METATYPE(MyClass*),这样才能在类型中使用QVariant。然后你可以像这样添加项目:

this->ui->comboBox->addItem("item-1", QVariant::fromValue(myClass));

把它拿回来:

this->ui->combobox->itemData(x).value<MyClass*>();
于 2009-10-19T06:27:30.867 回答
1

以上答案语法略有不正确,

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

像这样添加项目:

this->ui->comboBox->addItem("item-1", QVariant::fromValue(myClass));

并取回:this->ui->combobox->itemData(x).value();

于 2013-08-01T17:34:27.133 回答