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] [Windows]refuse de s'ouvrir


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut [Gtk_File_Chooser] [Windows]refuse de s'ouvrir
    Bonjour

    J'ai un problème lors de l'ouverture d'une fenêtre GtkFileChooserDialog. Voici le message d'erreur que j'ai lors de son ouverture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    fixme:file:GetLongPathNameW UNC pathname L"\\\\?\\C:\\users\\troumad\\Local Settings\\Application Data\\gtk-3.0\\bookmarks"
    fixme:file:GetLongPathNameW UNC pathname L"\\\\?\\D:\\Documents\\add\\perso\\trash:"
    fixme:file:GetLongPathNameW UNC pathname L"\\\\?\\C:\\users\\troumad\\Local Settings\\Application Data\\gtk-3.0\\servers"
    fixme:file:GetLongPathNameW UNC pathname L"\\\\?\\C:\\users\\troumad\\Local Settings\\Application Data\\gtk-3.0\\bookmarks"
    GLib-GIO-Message: watch thread: could not watch /org/gtk/settings/file-chooser/: E/S avec chevauchement en cours.
    Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
     
    (perso.exe:8): GLib-GIO-ERROR **: Settings schema 'org.gtk.Settings.FileChooser' does not contain a key named 'date-format'
    Le code pour ouvrir les fichiers glade a été pris ici :
    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
    void get_widgets(struct widgets *widgets)
    {
      widgets->window = GTK_WIDGET(gtk_builder_get_object(widgets->builder,"window"));
    }
     
    struct widgets * ouverture_glade_retour(char * _nom, unsigned short connect)
    {
      GError *error = NULL;
      struct widgets * widgets=NULL;
      char *chemin, * ici=chemin_exe();
     
      widgets=(struct widgets *)malloc(sizeof(struct widgets));
     
      widgets->builder = gtk_builder_new();
      chemin=g_build_path (G_DIR_SEPARATOR_S,ici,"fichiers","glade",_nom,NULL);
      if (!gtk_builder_add_from_file(widgets->builder, chemin, &error))
      {
          g_warning("%s", error->message);
          g_error_free(error);
          printf("Fichier %s inexistant à l'emplacement %s\n",_nom,chemin);
          widgets=NULL;
      }
      else
      {
          get_widgets(widgets);
          if ((connect&GLADE_CONNECT)!=0)
          {
              gtk_builder_connect_signals(widgets->builder, widgets);
          }
     
          gtk_widget_show(widgets->window);
      }
      g_free(chemin);
      g_free(ici);
     
      return widgets;
    }
    Bien sûr sous Linux, je n'ai pas de problème...
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

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

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    En traduisant simplement les warnings les quatre premières lignes te disent que les noms de tes chemins sont beaucoup trop longs.

    La ligne 6 t'indique qu'il n'est pas conseillé d'utiliser une boite de dialogue sans lui spécifier sa fenêtre parente.

    Enfin, et le problème vient sûrement de là, il y a une clef "date-format" dans le fichier xml inconnu pour Gtk+ !

  3. #3
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    En traduisant simplement les warnings les quatre premières lignes te disent que les noms de tes chemins sont beaucoup trop longs.
    Je ne sais pas d'où peuvent venir ces chemins. C'est surement dans les fichiers de configuration de wine.

    Citation Envoyé par gerald3d Voir le message
    La ligne 6 t'indique qu'il n'est pas conseillé d'utiliser une boite de dialogue sans lui spécifier sa fenêtre parente.
    Ça vient du code que j'ai passé, je ne vois pas comment spécifier une fenêtre parente à une autre fenêtre.

    Citation Envoyé par gerald3d Voir le message
    Enfin, et le problème vient sûrement de là, il y a une clef "date-format" dans le fichier xml inconnu pour Gtk+ !
    Cette entrée de mon fichier Linux n'était pas présente dans les fichiers correspondants de wine. Je l'ai rajouté :
    J'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        <key name="date-format" enum="org.gtk.Settings.FileChooser.DateFormat">
          <default>'regular'</default>
          <summary>Date format</summary>
          <description>
                  The amount of detail to show in the Modified column.
          </description>
        </key>
    dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [troumad@localhost drive_c]$ find -iname org.gtk.Settings.FileChooser*
    ./Program Files/perso/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml
    ./Program Files/perso/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml~
    ./GTK/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml
    ./GTK/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml~
    Et rien n'a changé.
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

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

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par troumad Voir le message
    Ça vient du code que j'ai passé, je ne vois pas comment spécifier une fenêtre parente à une autre fenêtre.
    Tu peux utiliser cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void gtk_window_set_transient_for (GtkWindow *window, GtkWindow *parent);

  5. #5
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    Ça marche peut-être, mais comme on réalise l’affiliation après la création, le message est toujours là.
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  6. #6
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    Mon filechooser est créé à partir de glade. Le passage du fichier glade à la fenêtre se fait par l"intermédiaire de 2 fonctions : gtk_builder_get_object et gtk_builder_add_from_file .
    Je ne sais laquelle exactement génère la fenêtre.

    Si dans la fonction qui génère la fenêtre je donne un parent avec la fonction : [CODELINE]gtk_widget_set_parent_window ((widgets->window),GTK_WINDOW(_widgets->window));[/CODELINE], je n'ai plus ce problème. Enfin, le programme ne plante plus lors de cet appel, je n'ai plus le message avec l'erreur, mais la fenêtre ne s'ouvre pas (même sous Linux). Il y a peut-être quelque chose à voir à ce niveau.
    Le problème est surtout à la compilation cette fois :
    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
    ouverture.c: In function 'ouverture':
    /usr/i686-w64-mingw32/sys-root/mingw/include/gtk-3.0/gtk/gtkwindow.h:40:27: warning: passing argument 2 of 'gtk_widget_set_parent_window' from incompatible pointer type [-Wincompatible-pointer-types]
     #define GTK_WINDOW(obj)   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_WINDOW, GtkWindow))
                               ^
    ouverture.c:53:55: note: in expansion of macro 'GTK_WINDOW'
           gtk_widget_set_parent_window ((widgets->window),GTK_WINDOW(_widgets->window));
                                                           ^
    In file included from /usr/i686-w64-mingw32/sys-root/mingw/include/gtk-3.0/gtk/gtkapplication.h:27:0,
                     from /usr/i686-w64-mingw32/sys-root/mingw/include/gtk-3.0/gtk/gtkwindow.h:33,
                     from /usr/i686-w64-mingw32/sys-root/mingw/include/gtk-3.0/gtk/gtkdialog.h:32,
                     from /usr/i686-w64-mingw32/sys-root/mingw/include/gtk-3.0/gtk/gtkaboutdialog.h:30,
                     from /usr/i686-w64-mingw32/sys-root/mingw/include/gtk-3.0/gtk/gtk.h:31,
                     from include.h:16,
                     from ouverture.c:22:
    /usr/i686-w64-mingw32/sys-root/mingw/include/gtk-3.0/gtk/gtkwidget.h:899:23: note: expected 'GdkWindow * {aka struct _GdkWindow *}' but argument is of type 'GtkWindow * {aka struct _GtkWindow *}'
     void                  gtk_widget_set_parent_window      (GtkWidget    *widget,
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

Discussions similaires

  1. Delphi 2007 refuse de s'ouvrir
    Par supersnail dans le forum EDI
    Réponses: 6
    Dernier message: 13/02/2009, 19h05
  2. windows refuse de se reparer
    Par jadey dans le forum Windows XP
    Réponses: 9
    Dernier message: 28/03/2008, 10h07
  3. windows refuse les drivers de mon calibrateur
    Par ugorichard dans le forum Windows Vista
    Réponses: 1
    Dernier message: 15/10/2007, 21h08
  4. Les Comptes d'utilisateurs refusent de s'ouvrir
    Par scorplayer dans le forum Windows XP
    Réponses: 13
    Dernier message: 15/09/2007, 12h42
  5. IE7 refuse de s'ouvrir
    Par doudoustephane dans le forum Windows Vista
    Réponses: 7
    Dernier message: 05/06/2007, 00h02

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