在Qt的组合框中添加QObject
我创建了一个自定义类,例如 MyClass。现在如何添加对 MyClass 引用的引用作为下面组合框中的第二个参数:
this->ui->comboBox->addItem("item-1", );
目的是当项目更改甚至被触发时,我想获取 MyClass 的特定类实例并进行相应的处理。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先,您需要使用
Q_DECLARE_METATYPE(MyClass*)
,以便该类型可以在QVariant
中使用。然后你可以像这样添加该项目:并将其取回:
First you need to use
Q_DECLARE_METATYPE(MyClass*)
, so that the type can be used inQVariant
. Then you can add the item like this:And get it back:
上面的答案语法有点不正确,
在MyClass头文件中使用Q_DECLARE_METATYPE(MyClass*),这样该类型就可以在QVariant中使用。
像这样添加项目:
this->ui->comboBox->addItem("item-1", QVariant::fromValue(myClass));
并把它找回来:
this->ui->combobox->itemData(x).value();
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();