Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Résolu] Fuite de mémoire ?  (Lu 2369 fois)

0 Membres et 1 Invité sur ce sujet

S66

  • Full Member
  • ***
  • Messages: 120
  • *-*
    • Voir le profil
    • Teal
[Résolu] Fuite de mémoire ?
« le: Juin 15, 2015, 06:08:19 pm »
Bonjour.
Je cherche à intégrer des QWidgets dans ma fenêtre SFML.
Et je crois qu'il y'a un petit problème ( ici:http://www.sfml-dev.org/tutorials/1.6/graphics-qt-fr.php)

int main(int argc, char **argv)
{
    QApplication App(argc, argv);

    // On crée la fenêtre principale
    QFrame* MainFrame = new QFrame;
    MainFrame->setWindowTitle("Qt SFML");
    MainFrame->resize(400, 400);
    MainFrame->show();

    //On crée une vue SFML dans la fenêtre principale
    MyCanvas* SFMLView = new MyCanvas(MainFrame, QPoint(20, 20), QSize(360, 360));
    SFMLView->show();

    return App.exec();
}
Il y'a des new. On doit donc faire des delete non ?
Ou bien Qt gère ça automatiquement ? oO'
Sinon, si vous avez une meilleure solution pour intégrer un QWidget dans une RenderWindow, je suis preneur !
J'ai SFML 2.2 mais j'utilise des tutos 1.6. oO'

Merci.
« Modifié: Juin 17, 2015, 05:22:03 pm par S66 »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Fuite de mémoire ?
« Réponse #1 le: Juin 15, 2015, 06:14:26 pm »
Il faut détruire MainFrame puisqu'elle n'a pas de parent (un QObject enfant est détruit automatiquement par son parent).

Mais bon ça c'est le fonctionnement de base de Qt et de ses QObjects, qui est d'ailleurs très bien documenté, il n'y a aucun rapport avec SFML...
Laurent Gomila - SFML developer

S66

  • Full Member
  • ***
  • Messages: 120
  • *-*
    • Voir le profil
    • Teal
Re : [Pas Résolu] Fuite de mémoire ?
« Réponse #2 le: Juin 17, 2015, 12:49:07 pm »
Le seul rapport, c'est que ce tuto est sur ce site.
Enfin bref.
J'ai lancé l'exécutable... dès que la QApplication s'ouvre, elle se referme.
Par contre, le programme n'est pas arrêté...
J'ai lancé mon débogueur, qui m'a rien dit du tout.
Est ce que c'est à cause du delete MainFrame que j'ai mis à la fin de mon main ?...

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [Pas Résolu] Fuite de mémoire ?
« Réponse #3 le: Juin 17, 2015, 03:36:35 pm »
Citer
Est ce que c'est à cause du delete MainFrame que j'ai mis à la fin de mon main ?...
Tu l'as mis où exactement ?
Laurent Gomila - SFML developer

S66

  • Full Member
  • ***
  • Messages: 120
  • *-*
    • Voir le profil
    • Teal
Re : [Pas Résolu] Fuite de mémoire ?
« Réponse #4 le: Juin 17, 2015, 05:17:44 pm »
juste avant le return app.exec();

S66

  • Full Member
  • ***
  • Messages: 120
  • *-*
    • Voir le profil
    • Teal
Re : [Résolu] Fuite de mémoire ?
« Réponse #5 le: Juin 17, 2015, 05:22:16 pm »
C'est bon j'ai trouvé la solution.
Si ça peut aider:
http://www.qtfr.org/viewtopic.php?pid=112844#p112844

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [Résolu] Fuite de mémoire ?
« Réponse #6 le: Juin 17, 2015, 06:49:10 pm »
La solution ici serait plutôt d'allouer MainFrame sur la pile histoire de ne pas avoir à le désallouer explicitement.
Laurent Gomila - SFML developer