Skip to content
QtWS25 Last Chance
  • 0 Votes
    8 Posts
    1k Views
    @yassser said in Qt MetaType and Circular Dependency: correct me if i'm wrong but does the copying part mean that you cant copy the properties to variant using QVariant::fromValue(QObject*) because it is working some QObject Derived classes in the Project , or you mean add the QObject subclass to the Qt Standard Types as in this exemple CustomTypes there is 3 requirement Both. When adding a QObject * to a QVariant you copy nothing, you just transfer a reference, and if that reference disappears in the mean time, well that's cause for concern. @yassser said in Qt MetaType and Circular Dependency: as for declaring QList<B*> i will switch to the typedef solution as it is more safe like you said although the other one(declar_type(QList<B*>)) is working somehow For what it's worth, declaration of metatypes should happen where the type is defined, not somewhere else. So even ideologically: class B; Q_DECLARE_METATYPE(QList<B*>) is wrong. That metatype declaration should've gone where B is defined, aside from it being needed or not. but the core problem i'm facing is the requirement of Q_DECLARE_METATYPE(B*) that B should be fully defined(defining the class using #include'b.h' instead of 'class B') Still talking hypotheticals. I don't see any concrete error that one gets from the compiler, nor a specific piece of cpp code that's the cause of said error. as i cant include the header files because it will cause circular dependency because A it self require the same process Where does it require that and why? Please post a snippet, I'm getting rather frustrated here. Consider this in the meantime: class B; typedef QList<B *> BList; class A { public: void setBList(const BList &); //< This doesn't require a definition of BList, and by extension a definition of B isn't required BList bList() const; //< Nor does this };
  • 0 Votes
    15 Posts
    8k Views
    @Burke212 change setup(); CWC = new customWidgetClass(); to CWC = new customWidgetClass(); setup(); hopefully you did initialize CWC as nullptr, otherwise that would have crashed in release mode 10/10 times.