在Qt的组合框中添加QObject

Sam*_*mir 1 qt qcombobox qobject

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

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

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

Luk*_*ský 5

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

this->ui->comboBox->addItem("item-1", QVariant::fromValue(myClass));
Run Code Online (Sandbox Code Playgroud)

把它拿回来:

this->ui->combobox->itemData(x).value<MyClass*>();
Run Code Online (Sandbox Code Playgroud)