IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ Discussion :

[glade] Afficher plusieur fois la même fenetre


Sujet :

GTK+

  1. #1
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 136
    Points : 115
    Points
    115
    Par défaut [glade] Afficher plusieur fois la même fenetre
    Bonjour,

    J'essaye de faire un programme tout simple qui, sur simple clique sur un bouton, affiche une fenêtre de sélection de fichier (celle qui existe dans GLADE, GtkFileChooserDialog).

    voila ma fonction de clique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    G_MODULE_EXPORT void on_btView_pressed( GtkWidget *ptWidget, gpointer ptPointer )
    {
        GtkWidget *about_dlg;
     
        about_dlg = GTK_WIDGET (gtk_builder_get_object (ptBuilder, "filechooserdialog1"));
        gtk_dialog_run (GTK_DIALOG (about_dlg));
        gtk_widget_hide (about_dlg);
    }
    J'ai l'impression que cela provoque une fuite mémoire...
    Pourriez vous me dire ce que je fais mal?
    Dois je faire quelque chose au signal de fermeture?

    Merci d'avance

    ps: Je n'ai pas encore testé sur Linux, je suis sur windows. Je pense que le comportement doit être identique?
    J'ai pas trouvé le forum GTK windows...

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Tu dois pouvoir réutiliser le même widget à chaque fois (ie le charger une seule fois avec ton GtkBuilder) au lieu de le recharger à chaque fois. Si tu veux le recharger, il faut faire un gtk_widget_destroy au lieu de gtk_widget_hide à mon avis, sinon tu vas leaker de la mémoire.

  3. #3
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 136
    Points : 115
    Points
    115
    Par défaut
    J'ai mis le pointeur sur la fenêtre en global.
    (oui je sais, c'est pas bien, mais c'est pour comprendre.)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    GtkWidget *about_dlg;
    G_MODULE_EXPORT void on_btView_pressed( GtkWidget *ptWidget, gpointer ptPointer )
    {
     
     
        gtk_dialog_run (GTK_DIALOG (about_dlg));
        gtk_widget_destroy ( about_dlg);
        //gtk_widget_hide (about_dlg);
    }
    et le chargement de la fenêtre est dans le main.

    Par contre, maintenant, au 2ieme clique, j'ai une segfault. ????

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Oui, tu as détruit ta fenêtre que tu essaies de réutiliser... Soit tu réutilises et tu mets un hide, soit tu la recrées à chaque fois et tu mets un destroy. Par contre réutilisation + destruction, ça n'est pas compatible

  5. #5
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 136
    Points : 115
    Points
    115
    Par défaut
    autant pour moi !

    Mais j'ai toujours des fuites mémoires...
    au moins, ça plante plus!

Discussions similaires

  1. Réponses: 10
    Dernier message: 01/09/2011, 15h34
  2. [AC-2007] Problème de clarté / afficher plusieurs fois la même table
    Par Vhalar dans le forum Modélisation
    Réponses: 6
    Dernier message: 28/08/2011, 19h52
  3. Pouvoir afficher plusieurs fois le même carctère
    Par kerido dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 25/10/2007, 15h44
  4. TListView affiche plusieurs fois la même bitmap
    Par OutOfRange dans le forum Composants VCL
    Réponses: 2
    Dernier message: 09/08/2007, 23h04
  5. Réponses: 12
    Dernier message: 23/01/2007, 19h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo