Add QObject in the combo box of Qt

自闭症网瘾萝莉.ら 提交于 2019-12-22 00:18:04

问题


I have a custom class I created, say MyClass. Now how to add a reference to MyClass's reference as second parameter in the combo box below:

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

Purpose is to when item changed even is fired, i want to get that specific class instance of MyClass and process accordingly.


回答1:


First you need to use Q_DECLARE_METATYPE(MyClass*), so that the type can be used in QVariant. Then you can add the item like this:

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

And get it back:

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



回答2:


Above answer syntax is slightly incorrect,

use Q_DECLARE_METATYPE(MyClass*), in the MyClass header file, so that the type can be used in QVariant.

add the item like this:

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

And get it back: this->ui->combobox->itemData(x).value();



来源:https://stackoverflow.com/questions/1586877/add-qobject-in-the-combo-box-of-qt

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!