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+ avec C & C++ Discussion :

la fenetre se destroy au lieu de hide


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 14
    Par défaut la fenetre se destroy au lieu de hide
    salut c'est encore moi,

    mon appli a evolué mais j'ai un autre pb :
    mon toogle_button fait bien son office de shower/hider pour sa subwindow, mais par compte quand je ferme la fenetre KaraokeWindow avec sa croix de fermeture, et qu'ensuite je veux la réactiver avec mon toggle_button, eh bien sa marche pas et ceci bien que j'ai attribué une fonction gtk_widget_hide au signal "delete-event" de la fenetre mais ca marche quand meme pas ( la console affiche "Gtk-CRITICAL **: gtk_widget_show: assertion 'GTK_IS_WIDGET (widget)' failed", puis si je reclique "Gtk-CRITICAL **: gtk_widget_hide: assertion 'GTK_IS_WIDGET (widget)' failed" , puis si je reclique "Gtk-CRITICAL **: gtk_widget_show: assertion 'GTK_IS_WIDGET (widget)' failed" , etc ...)

    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    #include <stdio.h>
    #include <stdlib.h>
     
    #include <gtk/gtk.h>
    #include <glade/glade.h> 
     
    GladeXML *MonGlade; 
    GtkWidget *MainWindow, *KaraokeWindow, *KaraokeToggleButton;
     
    void HideOrUnhideKaraokeWindow()
    {
    	if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(KaraokeToggleButton))==FALSE)
    	{
    		gtk_widget_hide(KaraokeWindow);
    	}
    	else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(KaraokeToggleButton))==TRUE)
    	{
    		gtk_widget_show(KaraokeWindow);
    	}
    }
     
    void HideKaraokeWindow()
    {
    	gtk_widget_hide(KaraokeWindow);
    	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(KaraokeToggleButton),FALSE);
    }
     
    int main(int argc,char *argv[])
    {
      gtk_init(&argc,&argv);
     
      MonGlade=glade_xml_new("MainWindowsFrm.glade",NULL,NULL);
      g_assert(MonGlade != NULL);
      glade_xml_signal_autoconnect(MonGlade);
     
      MainWindow=glade_xml_get_widget(MonGlade,"MainWindow" );
      KaraokeWindow=glade_xml_get_widget(MonGlade,"KaraokeWindow" );
       KaraokeToggleButton=glade_xml_get_widget(MonGlade,"KaraokeToggleButton" );
     
     g_signal_connect(KaraokeWindow,"delete-event", G_CALLBACK(HideKaraokeWindow), NULL);
     
      g_signal_connect(G_OBJECT (KaraokeToggleButton),"toggled", G_CALLBACK(HideOrUnhideKaraokeWindow), NULL);
     
      gtk_widget_show_all(MainWindow);
     
      gtk_main(); 
      return EXIT_SUCCESS;
    }
    je ne comprend pas ou est le pb....

  2. #2
    Membre Expert
    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
    Par défaut
    IL faut renvoyer une valeur en réaction au delete-event pour bloquer la propagation du signal.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 14
    Par défaut
    merci beaucoup de repondre à cette heure (j'y croyais plus)...
    envoyer une valeur ? par exemple un return "exit_success" dans la fonction callback ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 14
    Par défaut
    non ca doit pas etre juste un exit-success parceque je vien d'essayer et j'ai toujours mon message d'erreur dans la console et ma fenetre qui se réaffiche pas

  5. #5
    Membre Expert
    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
    Par défaut
    Tiens en lisant la doc y a une fonction gtk_widget_hide_on_delete qui est faite exactement pour ce que tu veux faire. Tu connectes ça à ton delete-event et ça devrait tomber en marche

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/07/2010, 12h54
  2. Hide dans fenetre secondaire
    Par yann_DZ dans le forum VB.NET
    Réponses: 19
    Dernier message: 30/03/2010, 21h17
  3. fenetre modale au lieu d'une confirm javascript
    Par namstou3 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/09/2007, 09h32
  4. Réponses: 3
    Dernier message: 22/07/2002, 14h19
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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