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:
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;
} |
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:
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:
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:
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 ?