Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
721 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Qt][QML] QObject du C++ vers le QML: gestion mémoire

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Qt][QML] QObject du C++ vers le QML: gestion mémoire

n°2275796
kao98
...
Posté le 17-02-2016 à 11:13:29  profilanswer
 

Hello  :hello:

 

Je suis sur un projet C++ / QML depuis quelques mois. Ceci dit, le C++ et le QML, pour moi, c'est nouveau.

 

Tout d'abord, un exemple de code (heu ... pseudo-code, j'ai pas compilé, mais c'est l'idée)

 
Code :
  1. class Foo : public QObject
  2. {
  3.   Q_OBJECT
  4.   // snip ...
  5. }
  6. class Bar : public QObject
  7. {
  8.   Q_OBJECT
  9. public:
  10.   // snip ...
  11.   Q_INVOKABLE Foo* getFoo() { return new Foo(); }
  12. }
  13. int main(int argc, char* argv[])
  14. {
  15.   // snip ...
  16.   Bar bar;
  17.   qmlRegisterUncreatableType<Foo>("myLib", 1, 0, "foo", QString("no way :o" ));
  18.   view.rootContext().setContextProperty("barObject", (QObject*) &bar);
  19.  
  20.   //snip ...
  21. }
 

Depuis le QML, je serai ainsi capable d'appeler la méthode bar::getFoo(). Elle me renverra un nouvel objet foo fraichement initialisé.

 

Ma question : comment je libère la mémoire ? Je ne delete jamais mon objet ?

 

Si je comprends bien ça : http://developer.ubuntu.com/api/qm [...] tion-data/

 
Citation :

When data is transferred from C++ to QML, the ownership of the data always remains with C++. The exception to this rule is when a QObject is returned from an explicit C++ method call: in this case, the QML engine assumes ownership of the object, unless the ownership of the object has explicitly been set to remain with C++ by invoking QQmlEngine::setObjectOwnership() with QQmlEngine::CppOwnership specified.

 

c'est le moteur QML qui a l'ownership de mon instance de foo, et donc qui le libèrera le moment venu ? C'est bien ça ?

 

Edit : petite précision : pour plein de raison qui ne sont malheureusement pas de mon fait : Qt 4.8.


Message édité par kao98 le 17-02-2016 à 11:22:11

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
mood
Publicité
Posté le 17-02-2016 à 11:13:29  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Qt][QML] QObject du C++ vers le QML: gestion mémoire

 

Sujets relatifs
Concommation mémoire variables php[C#] Impression PDF
Map C# et stockageimporter données vers autre fichier excel automatiquement
Gestion et partage des données d'un appLecture et ecriture d'une image pgm en C
intégrer le bonhomme du pendu au jeu du pendu en CVBScript : Conversion Encodage ISO vers UTF-8
Ecrire totalité des resultats d'un programme dans un fichier en C 
Plus de sujets relatifs à : [Qt][QML] QObject du C++ vers le QML: gestion mémoire


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR