को मैं एक QListWidgetItem
के लिए सूचक संलग्न करने के लिए कोशिश कर रहा हूँ स्लॉट itemActivated
में इस्तेमाल किया जाएगा।QVariant QObject *
सूचक मैं संलग्न करने के लिए कोशिश कर रहा हूँ एक QObject*
वंशज है, इसलिए, मेरे कोड कुछ इस तरह है:
Image * im = new Image();
// here I add data to my Image object
// now I create my item
QListWidgetItem * lst1 = new QListWidgetItem(*icon, serie->getSeriesInstanceUID(), m_iconView);
// then I set my instance to a QVariant
QVariant 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
स्लॉट। यहां मुझे संस्करण से Image*
निकालने की आवश्यकता है, और मुझे नहीं पता कि कैसे करें।
मैं इस कोशिश की, लेकिन मैं त्रुटि मिलती है:
‘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 *>();
है: "आमतौर पर, आप इस निर्माता का उपयोग करने की आवश्यकता नहीं है, का उपयोग [QVariant :: fromValue()] (http://doc.qt.io/qt-5/qvariant.html#fromValue) के बजाय सूचक प्रकार QMetaType :: VoidStar द्वारा प्रतिनिधित्व से वेरिएंट के निर्माण के लिए, और QMetaType :: QObjectStar । " –
यह भी ध्यान दें कि '& im' का प्रकार' छवि ** 'है, न कि 'छवि *'। –