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 :

réalisation d'une boite de dialogue


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut réalisation d'une boite de dialogue
    Bonsoir tout le monde

    Je souhaite réaliser des boite de dialogue dans mon apli.

    Structur.h

    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
     
    #include <stdlib.h>
    #include <gtk/gtk.h>
     
     
    #ifndef structure_H
    #define structure_H
     
    typedef struct 
    {
    GtkWidget *win;
     GtkWidget *vbox;
    GtkWidget *menuiteminfo;
    GtkWidget *menu;
    }
     
    static void info(composant * e);
    void menu(composant * e);
    void regle(composant * e);
    #endif

    menu.c
    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
     
    #include <gtk/gtk.h>
    #include "structure.h"
     
    static void info(composant * e)
    {
     
    GtkWidget *dialog = NULL;     
     
    dialog = gtk_message_dialog_new (GTK_WINDOW (e->win), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "Mytext");     
    gtk_dialog_run (GTK_DIALOG (dialog));
    gtk_widget_destroy (dialog);     
     
     
    }
     
     
    void menu(composant * e)
    {
    e->menubar = gtk_menu_bar_new();
    e->menu = gtk_menu_new();
     
    e->menuiteminfo = gtk_menu_item_new_with_label("A propos de ...");
     gtk_menu_shell_append(GTK_MENU_SHELL(e->menu), e->menuitem);
     g_signal_connect (G_OBJECT(e->menuiteminfo),"activate",G_CALLBACK(info),NULL);
     
     
    }

    main.c

    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
     
    #include <stdlib.h>
    #include <gtk/gtk.h>
    #include <stdio.h>
    #include "structure.h"
     
     
    void menu(composant * e);
    static void info(composant * e);
    void regle(composant * e);
     
    int main (int argc, char *argv[])
    {
        composant e;
     
     
      g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, (GLogFunc) gtk_false, NULL);
      gtk_init (&argc, &argv);
      g_log_set_handler ("Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, NULL);
     
     
      e.win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
      gtk_container_set_border_width (GTK_CONTAINER (e.win), 8);
      gtk_window_set_title (GTK_WINDOW (e.win), "text");
      gtk_window_set_position (GTK_WINDOW (e.win), GTK_WIN_POS_CENTER);
      gtk_widget_realize (e.win);
      gtk_window_maximize(GTK_WINDOW (e.win));
      g_signal_connect (e.win, "destroy", gtk_main_quit, NULL);
     
     
      e.vbox = gtk_vbox_new (FALSE, 6);
      gtk_container_add (GTK_CONTAINER (e.win), e.vbox);
     
     
     menu(&e);
     
     regle(&e);
     
     
      gtk_widget_show_all (e.win);
      gtk_main ();
      return 0;
    }
    Mon probleme est que ca refuse de s'executer.

    Je ne voix pas où se trouve l'erreur.

    Je vous signal que l'appli que je développe aura beaucoup de boites de dialogues, donc il faudrait que je voix comment on réalise des boites de dialogue quand on developpe des apli structuré.

    Merci

    Cordialement

    A bientôt

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Avant de faire une application structurée, il faut déjà que tu apprennes à bien maîtrise la programmation modulaire, ca va mieux qu'au début mais c'est toujours pas trop ca !

    Surtout pour ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void menu(composant * e);
    static void info(composant * e);
    void regle(composant * e);
    Je ne vois pas trop ce que ca viens faire dans le fichier main.c, ce sont des fonctions de ton fichier structure.h.

    Ensuite, plus grave, tu as dans ton fichier structure.h des prototype de fonctions ... jusque là ok, rien de plus normal Mais en fait, si tu déclares une fonction comme static, celle-ci n'a strictement rien à faire ici, c'est une fonction privée et donc son prototype (pas obligatoire) doit se trouver dans le fichier du même nom mais portant l'extension *.c !

    Justement, parlons un peu de tes fichiers ... tu as un fichier structure.h ... ok, mais où se trouve sont fichier d'implémentation structure.c ? Je sais, tu as tout implémenté dans le fichier menu.c mais c'est pas bon, dans ce cas, renome ton fichier structure.h en menu.h ... telle sont les règles de la programmation modulaire mais là pour le moment c'est un peu du hasard que tu nous fait !

    Donc voilà le topo, si tu veux vraiment ta structure dans un header séparé du reste, soit fait-le mais les prototypes de fonctions qui s'y trouvent, ceux qui sont pour le module menu, mets-les dans un fichier menu.h, il va falloir apprendre à mieux organiser ton projet, tu peut t'aider de ceci:

    http://emmanuel-delahaye.developpez.com/codage.htm
    http://bien-programmer.blogspot.com/


    Bonne lecture
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut
    bonjour tout le monde

    Si je laisse la structure.h, que dois je mettre dans la Structure.c

    De plus, dois je créer un fichier *.c pour les boites de dialogues.

    Merci

    Cordialement

    A bientôt

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par argon
    Si je laisse la structure.h, que dois je mettre dans la structure.c
    Déjà, il faut faire plus qu'attention à la casse des caractères, le compilateur y est sensible. Si dans ton fichier tu n'as que la structure, il n'est bien évidement pas nécessaire d'avoir un fichier structure.c mais en générale, un fichier unique pour juste une structure, ca fait un peu trop fin comme découpage !

    Voilà en GTK+ comment j'organise une partie de mes modules:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    main.c
       |___ gui (interface principale, menus et barre d'outils compris).
       |___ dlg (toutes les boîtes de dialogue).
       |___ prefs (gestion des préférences complètes du programme).
       |___ callback (tous les événements utilisateurs).
       |___ funcs (diverses fonctions appelées par tout le reste de l'application).
    Ceci biensûr pour des projets tout de même assez gros, ca va de soi.
    [/QUOTE]
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Par défaut
    bonjour tout le monde

    Je veux savoir si c'est possible de faire un boite de dialogue pour acceder à des fichiers.

    Merci

    Cordialement

    A bientôt

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Comme déjà dit, ce genre de réponse se trouvent en quelques secondes dans la ref de l'API de GTK+: GtkFileChooser
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/06/2014, 13h29
  2. [MFC] rendre une boite de dialogue inactive
    Par Vestaproman dans le forum MFC
    Réponses: 8
    Dernier message: 22/01/2004, 14h09
  3. Affichage d'une boite de dialogue nonmodale avec MFC
    Par the.cable.guy dans le forum Windows
    Réponses: 3
    Dernier message: 04/07/2003, 17h59
  4. Réponses: 5
    Dernier message: 04/04/2003, 15h02
  5. Comment cree une boite de dialogue parcourir
    Par kenshi dans le forum MFC
    Réponses: 5
    Dernier message: 06/01/2003, 10h30

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