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 :

gtk_file_chooser_dialog_new: problème à la fermeture de la fenêtre de dialog


Sujet :

GTK+ avec C & C++

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Par défaut gtk_file_chooser_dialog_new: problème à la fermeture de la fenêtre de dialog
    Bonjour,
    le programme suivant crash à la fermeture de la fenêtre de dialogue utilisée pour sauver un fichier.
    Cela n'apparaît qu'avec gtk_file_chooser_dialog_new.

    (test.exe:7108): Gtk-WARNING **: file_system_win32=00F53380 still has handle=00F
    58230 at finalization which is NOT CANCELLED!
    Quelqu'un aurait-il une idée?
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    #include <stdlib.h>
    #include <gtk/gtk.h>
     
    GtkWidget *pWindow;
     
     
    void OnSave(GtkWidget* widget, gpointer data)
    {
      GtkWidget *dialog=NULL;
      dialog = gtk_file_chooser_dialog_new ("Save File as ...",
    						GTK_WINDOW(pWindow),
      				      GTK_FILE_CHOOSER_ACTION_SAVE,
      				      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
      				      GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
      				      NULL);
      gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE);
     
      gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), "Untitled");
     
      if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
      {
        gchar *filename;
        filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
    	/* save the output */
        g_free (filename);
      }
     
      gtk_widget_destroy (dialog);
    }
     
    int main(int argc, char **argv)
    {
        GtkWidget *pVBox;
        GtkWidget *pMenuBar;
        GtkWidget *pMenu;
        GtkWidget *pMenuItem;
        GtkWidget *pFrame;
        GtkWidget *pVBoxFrame;
     
        /* Define the GTK window */
        gtk_init(&argc,&argv);
     
        pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(pWindow), "3GPP message decoder");
     
     
        gtk_window_set_default_size(GTK_WINDOW(pWindow), 640, 400);
        g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
     
        /* Create the main vertical GtkBox */
        pVBox = gtk_vbox_new(FALSE, 1);
        gtk_container_add(GTK_CONTAINER(pWindow), pVBox);
     
        /*******************************************************/
        /*                       Menu                          */
        /*******************************************************/
        pMenuBar = gtk_menu_bar_new();
        /* First sub-menu */
        pMenu = gtk_menu_new();
        pMenuItem = gtk_menu_item_new_with_label("Save output as...");
        g_signal_connect(G_OBJECT(pMenuItem), "activate", G_CALLBACK(OnSave), (GtkWidget*) pWindow);
        gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), pMenuItem);
        pMenuItem = gtk_menu_item_new_with_label("File");
        gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), pMenu);
        gtk_menu_shell_append(GTK_MENU_SHELL(pMenuBar), pMenuItem);
     
        gtk_box_pack_start(GTK_BOX(pVBox), pMenuBar, FALSE, FALSE, 0);
        gtk_widget_show_all(pWindow);
     
        gtk_main();
     
        return EXIT_SUCCESS;
    }

  2. #2
    Membre expérimenté

    Inscrit en
    Mai 2005
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 132
    Par défaut
    Bonjour,

    je l'ai esaye et ... sans problems. Moi, j'utilise Linux Slackware 12.0, gcc 4.1.2, gtk 1.2.10.

    Fredy "KRUGER"

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Par défaut
    Merci pour le test. J'utilise gtk-2.0 sous windows. Ce qui m'étonne, c'est que wireshark, compilé avec les mêmes lib et quasi le même code fonctionne...

  4. #4
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    En même temps, tu m'étonnes que ça marche sous Linux, c'est une erreur spécifique win32, comme son nom l'indique.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/03/2014, 15h36
  2. [WD10] Problème en fermeture d'une fenêtre
    Par bestmoroco dans le forum WinDev
    Réponses: 2
    Dernier message: 05/08/2012, 05h15
  3. Problème de fermeture d'une fenêtre
    Par khadi8 dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 16/12/2011, 17h11
  4. [ASP.NET] Problème de fermeture d'une fenêtre
    Par Dadou74 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 08/02/2007, 09h23

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