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 :

Probleme GTK+ 3


Sujet :

GTK+ avec C & C++

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mai 2012
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 1
    Par défaut Probleme GTK+ 3
    Salut, j'ai un problème avec gtk+ 3 pour crée un menu de mon application, je trouve pas une solution et voici le code source de l'application , merci de m'aider pour réaliser le menu de l'application.

    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    #include<gtk/gtk.h>
    #include<stdlib.h>
    #include<stdio.h>
     
    void destroy(GtkWidget *p_window, gpointer data)
    {
        gtk_main_quit();
    }
     
    void OnQuitter(GtkWidget* widget, gpointer data)
    {
    GtkWidget *pQuestion;
    pQuestion = gtk_message_dialog_new(GTK_WINDOW(data),
    GTK_DIALOG_MODAL,
    GTK_MESSAGE_QUESTION,
    GTK_BUTTONS_YES_NO,
    "Voulez vous vraiment\n"
    "quitter le programme?");
    switch(gtk_dialog_run(GTK_DIALOG(pQuestion)))
    {
    case GTK_RESPONSE_YES:
    gtk_main_quit();
    break;
    case GTK_RESPONSE_NONE:
    case GTK_RESPONSE_NO:
    gtk_widget_destroy(pQuestion);
    break;
     
    }
    }
     
    void OnAbout(GtkWidget* widget, gpointer data)
    {
    GtkWidget *pAbout;
    pAbout = gtk_message_dialog_new (GTK_WINDOW(data),
    GTK_DIALOG_MODAL,
    GTK_MESSAGE_INFO,
    GTK_BUTTONS_OK,
    "Cours GTK+ 2.0\n"
    "http://www.lesite.org");
    gtk_dialog_run(GTK_DIALOG(pAbout));
    gtk_widget_destroy(pAbout);
     
    }
     
    static const char *tableau[]={"Profil","Enregistrer","Enregistrer sous...","Quitter"};
     
    static void menu_cb(GtkMenuItem *item,gpointer data)
    {
        printf("%s\n",gtk_menu_item_get_label(item));
    }
     
    int main(int argc, char *argv[])
    {
     
    GtkWidget *p_window/*,*bouton[4]*/,*grid,*barre_menu,*menu,*sous_menu_fichier;
    gtk_init(&argc, &argv);
    int i;
    p_window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(p_window),"Tour de Hanoi");
    gtk_container_set_border_width(GTK_CONTAINER(p_window),10);
    gtk_widget_set_size_request(p_window,700,350);
    g_signal_connect (G_OBJECT (p_window), "destroy", G_CALLBACK (destroy), NULL);
     
    /* Création de bouton
    bouton[0]=gtk_button_new_with_label("Instruction");
    bouton[1]=gtk_button_new_with_label("Jouer");
    bouton[2]=gtk_button_new_with_label("Résoudre");
    bouton[3]=gtk_button_new_with_label("Annuler");
    */
     
    grid=gtk_grid_new();
    gtk_grid_set_row_spacing (GTK_GRID (grid), 6);
     
    gtk_container_add(GTK_CONTAINER(p_window),grid);
     
     
    /********** Menu *************/
    barre_menu=gtk_menu_bar_new();
    menu=gtk_menu_new();
     
    sous_menu_fichier=gtk_menu_item_new_with_label("Fichier");
     
    for(i=0;i<4;i++)
    {
      GtkWidget *sous_menu = gtk_menu_item_new_with_label(tableau[i]);
      gtk_menu_shell_append(GTK_MENU_SHELL(menu),sous_menu);
      g_signal_connect(sous_menu,"activate",G_CALLBACK(menu_cb),NULL);
    }
     
    gtk_menu_item_set_submenu(GTK_MENU_ITEM(sous_menu_fichier),menu);
    gtk_menu_shell_append(GTK_MENU_SHELL(barre_menu),sous_menu_fichier);
     
    gtk_grid_attach(GTK_GRID(grid),barre_menu,0,0,1,1);
     
    gtk_widget_show_all(p_window);
     
    gtk_main();
    return 0;
     
    }

  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 : 54
    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
    Bonjour.

    J'ai exécuté ton programme. Il fonctionne correctement. Ton menu Fichier s'affiche. quel est exactement ton problème ?

Discussions similaires

  1. Probleme GTK exe a cesser de fonctionner
    Par baobab95 dans le forum GTK+ avec C & C++
    Réponses: 7
    Dernier message: 12/11/2009, 14h06
  2. probleme GTK Cairo
    Par asma.r dans le forum GTK+ avec C & C++
    Réponses: 8
    Dernier message: 20/10/2009, 14h02
  3. Probleme GTK C Lecture dans un Text_Buffer
    Par mazareth dans le forum C
    Réponses: 1
    Dernier message: 01/06/2009, 20h43
  4. Probleme GTK sous macos X
    Par supposeitwar dans le forum Apple
    Réponses: 4
    Dernier message: 15/11/2008, 16h02
  5. Probleme GTK ? - checking for gtk-config
    Par bonano dans le forum GTK+
    Réponses: 1
    Dernier message: 20/02/2006, 19h50

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