c – QVariant to QObject *

c – QVariant to QObject *,第1张

概述我试图附加一个指向QListWidgetItem的指针,以在slot itemActivated中使用. 我试图附加的指针是一个QObject *后代,所以我的代码是这样的: Image * im = new Image(); // here I add data to my Image object// now I create my itemQListWidgetItem * lst1 我试图附加一个指向QListWidgetItem的指针,以在slot itemActivated中使用.

我试图附加的指针是一个QObject *后代,所以我的代码是这样的:

Image * im = new Image();  // here I add data to my Image object// Now I create my itemQListWidgetItem * lst1 = new QListWidgetItem(*icon,serIE->getSerIEsInstanceUID(),m_iconVIEw);// then I set my instance to a QVariantQVariant v(QMetaType::QObjectStar,&im)// Now I "attach" the variant to the item.lst1->setData(Qt::UserRole,v);//After this,I connect the SIGNAL and SLOT...

现在我的问题,itemActivated插槽.在这里,我需要从变体中提取我的图像*,我不知道如何.

我试过这个,但我收到错误:

‘qt_Metatype_ID’ is not a member of ‘QMetaTypeID’

voID MainWindow::itemActivated( QListWidgetItem * item ){    Image * im = item->data(Qt::UserRole).value<Image *>();    qDeBUG( im->getimage().toAscii() );}

任何提示?

Image * im = item->data(Qt::UserRole).value<Image *>();
解决方法 答案是这样的
// From QVariant to QObject *QObject * obj = qvariant_cast<QObject *>(item->data(Qt::UserRole));// from QObject* to myClass*myClass * lmyClass = qobject_cast<myClass *>(obj);
总结

以上是内存溢出为你收集整理的c – QVariant to QObject *全部内容,希望文章能够帮你解决c – QVariant to QObject *所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1246403.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存