için QStandardItem özel nesnesini iliştirin Kullanıcıya bazı verileri göstermek için QTreeView
kullanıyorum. İstediğim şey, QStandardItem
kullanılarak temsil edilen her bir düğüme gerçek bir nesne eklemektir. Qt
QStandardItem
içine nesne başvurusu kaydetmek için: o arayüzünde tıklandığında
QStandardItem *child = new QStandardItem(s);
child->setFlags(child->flags() & ~Qt::ItemIsEditable);
child->setData(QVariant(QVariant::UserType, i), Qt::UserRole + 10);
gerçek nesneye erişmek için:
void MyOtherClass::handleTreeViewSelectionChanged(const QModelIndex &i)
{
MyClass* o = i.data(Qt::UserRole + 10).value<MyClass*>();
// do other stuff with o
}
yukarıdaki çağrı sadece NULL
döndürür. Böyle bir gereksinimle nasıl başa çıkılacağını bilen var mı?
Web'de kesinlikle yararlı hiçbir şey bulunamadı.
Herhangi bir yardım çok takdir edilecektir.
Not: Yukarıdakilere ek olarak, bu özel nesnelerle Drag & Drop uygulamasını desteklemek isteyebilirsiniz. Bunu yapmak için, "qRegisterMetaTypeStreamOperators()' ile bu tür akış operatörleri kaydetmeniz gerekir, bkz. Http://qt-project.org/doc/qt-5/qmetatype.html#qRegisterMetaTypeStreamOperators – Googie