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 :

Problème d'ouverture fichier .glade lors de l'execution du programme GTK+


Sujet :

GTK+

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème d'ouverture fichier .glade lors de l'execution du programme GTK+
    Je suis debutant en GTK+3 et Glade3 pour concevoir des applications graphiques. J'ai étudié quelques tutoriels traitant ces sujets. Pour m'exercer, j'ai installé CodeBlocks 16.1, GTK+3.6.4 et Glade3-3.6.1 sous ma plateforme Windows 8.1. J'ai essayé de compiler 2 ou 3 programmes sans problème. Mais à l'exécution je reçois une erreur d'ouverture du fichier .glade que je créé avec glade3 pour la conception de l'interface.
    Le message d'erreur à l'exécution est:
    "Failed to open file, invalid argument"
    Je ne comprends pas trop. Voici le 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
    #include <stdlib.h>
    #include <gtk/gtk.h>
     
     
    int main(int argc, char **argv)
    {
     
        GtkWidget *fenetre_principale = NULL;
        GtkBuilder *builder = NULL;
        GError *error = NULL;
        gchar *filename = NULL;
     
        /* Initialisation de la librairie Gtk */
        gtk_init(&argc, &argv);
     
        /* Ouverture du ficier glade de la fenetre principale */
        builder = gtk_builder_new();
     
        /* Creation du chemin complet pour acceder au fichier test.glade */
        filename = g_build_filename("C:\test\test.glade",NULL);
     
        /* Chargement du fichier test.glade */
        gtk_builder_add_from_file(builder, filename, &error);
        g_free(filename);
        if (error)
        {
            gint code = error->code;
            g_printerr("%s\n", error->message);
            g_error_free(error);
            return code;
        }
            /* Recuperation du pointeur de la fenetre principale */
            fenetre_principale = GTK_WIDGET(gtk_builder_get_object(builder, "MainWindow"));
     
            /* Affectation du signal "destroy" a la fonction gtk_main_quit(); pour la fermeture de la fenetre */
            g_signal_connect(G_OBJECT(fenetre_principale),"destroy", G_CALLBACK(gtk_main_quit), NULL);
     
            /* Affichage de la fenetre principale */
            gtk_widget_show_all(fenetre_principale);
     
     
            gtk_main();
     
     
            return EXIT_SUCCESS;
     
    }

  2. #2
    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
    Points : 2 002
    Points
    2 002
    Par défaut
    Bonjour,

    je pense que le chemin du fichier est incorrect.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     filename = g_build_filename("C:\test\test.glade",NULL);
    Tu es sous Windows, donc le séparateur à utiliser pour les dossiers dans un chemin est le backslash. Mais tu fais du C, et le backslash est un caractère spécial d'échapement. la séquence '\t' correspond par esxemple au caractère de tabulation. Pour indiquer que tu veux vraiment le caractère backslash, tu dois le doubler:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     filename = g_build_filename("C:\\test\\test.glade",NULL);
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    ça marche. Merci beaucoup

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Problème compilation code c avec Glade et GTK
    Bonjour
    Comme mon collègue je suis debutant en GTK+3 et Glade3. Je suis suis sous une VM debian sur laquelle j'ai installé glade et gtk avec les commandes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sudo apt-get install libgtk-3-dev
    sudo apt-get install libgtk-3-0
    sudo apt-get install glade
    J'ai suivi le tutoriel suivant https://gerald3d.developpez.com/tutoriels/gtk/glade3/ et j'ai donc créé un fichier test.glade avec glade en suivant les différentes directives. Ensuite j'ai voulu exécuter le code fourni après qui est le suivant suivant :
    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
     
    #include <gtk/gtk.h>
    #include <stdlib.h>
     
    int main(int argc, char *argv [])
        {
          GtkWidget *main_windows = NULL;
          GtkBuilder *builder = NULL;
          GError *error = NULL;
          gchar *filename = NULL;
          /* Initialisation de la librairie Gtk. */
          gtk_init(&argc, &argv);
     
          /* Ouverture du fichier Glade de la fenêtre principale */
          builder = gtk_builder_new();
     
          /* Création du chemin complet pour accéder au fichier test.glade. */
          /* g_build_filename(); construit le chemin complet en fonction du système */
          /* d'exploitation. ( / pour Linux et \ pour Windows) */
          filename =  g_build_filename ("test.glade", NULL);
     
              /* Chargement du fichier test.glade. */
          gtk_builder_add_from_file (builder, filename, &error);
          g_free (filename);
          if (error)
          {
            gint code = error->code;
            g_printerr("error : %s\n", error->message);
            g_error_free (error);
            return code;
          }
     
            /* Récupération du pointeur de la fenêtre principale */
          main_windows = GTK_WIDGET(gtk_builder_get_object (builder, "MainWindow"));
     
          /* Affectation du signal "destroy" à la fonction gtk_main_quit(); pour la */
          /* fermeture de la fenêtre. */
          g_signal_connect (G_OBJECT (main_windows), "destroy", (GCallback)gtk_main_quit, NULL);
     
          /* Affichage de la fenêtre principale. */
          gtk_widget_show_all (main_windows);
     
          gtk_main();
     
          return 0;
        }
    Lorsque je le compile et l'exécute j'ai ceci comme message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    sudo gcc $(pkg-config --libs --cflags gtk+-3.0) test3.c -o test
    ./test
     
    ** (test:2081): WARNING **: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
     
    (test:2081): GLib-GObject-WARNING **: invalid (NULL) pointer instance
     
    (test:2081): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
     
    (test:2081): Gtk-CRITICAL **: gtk_widget_show_all: assertion 'GTK_IS_WIDGET (widget)' failed
    Je ne comprends pas du tout ces messages d'erreurs, auriez-vous des idées ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    En fait j'ai trouvé, c'est vraiment très stupide de ma part.
    Pour la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    main_windows = GTK_WIDGET(gtk_builder_get_object (builder, "MainWindow"));
    je n'avais pas mis le bon nom de widget. J'ai donc mis mon nom de widget et ça marche.

  6. #6
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Beldramma1 Voir le message
    En fait j'ai trouvé, c'est vraiment très stupide de ma part.
    Pour la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    main_windows = GTK_WIDGET(gtk_builder_get_object (builder, "MainWindow"));
    je n'avais pas mis le bon nom de widget. J'ai donc mis mon nom de widget et ça marche.
    De rien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] probléme d'ouverture fichier excel
    Par Legirondin33 dans le forum Excel
    Réponses: 4
    Dernier message: 19/09/2012, 21h48
  2. Problème d'ouverture fichier access 2010
    Par thomasly dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/04/2010, 19h07
  3. Problème d'ouverture fichier excel
    Par Thump13 dans le forum Documents
    Réponses: 0
    Dernier message: 05/09/2008, 10h27
  4. Problème d'ouverture fichier InfoPath
    Par TomZ dans le forum InfoPath
    Réponses: 6
    Dernier message: 02/08/2007, 15h06
  5. [Tableaux] Problème sur ouverture fichier txt
    Par yaum4444 dans le forum Langage
    Réponses: 7
    Dernier message: 15/12/2006, 15h10

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