c++ - Storing custom objects in QStandardItemModel -
i'd store custom objects (let's instances of mydataclass) in tree structure, , linked view. used qstandarditemmodel. think mydataclass should inherit qstandarditem :
class mydataclass : public qstandarditem { public: mydataclass(qstring name) private: vector<float> somedata; } but cannot figure out how store instances of class in qstandarditemmodel. tried qstandarditem.setchild , appendrow not work , think don't qstandarditemmodel thing. think solution deals woth qstandarditem.setdata cannot figure out how works custom objects.
i have make work using qvariant. fill model custom data :
mydataclass *data; ... // adding data qvariant variant; variant.setvalue(data); qstandarditemmodel model; // here model qstandarditem *parentitem = model.invisiblerootitem(); qstandarditem *item = new qstandarditem(); item->setdata(variant); parentitem->setchild(0, 0, item); // adding item root later, when want retrieve data :
mydataclass *retrieveddata = model.invisiblerootitem()-> child(0, 0)->data().value<mydataclass*>(); note had add line in class declaration :
class mydataclass : public qstandarditem { public: mydataclass(qstring name) private: vector<float> somedata; } q_declare_metatype(mydataclass *) // add line thank help.
Comments
Post a Comment