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

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    octobre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : octobre 2016
    Messages : 2
    Points : 3
    Points
    3

    Par défaut Création d'un gtk_label depuis un bouton

    Bonjour,

    Je voudrai créer plusieurs labels en cliquant sur un bouton, mais je bloque. Quelqu'un aurait-il une idée ?

    Voici mon main.c

    Merci par avance.

    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
     
    /* 
            gcc `pkg-config --cflags --libs gtk+-3.0`
    */
     
    #include <gtk/gtk.h>
    #include <stdio.h>
     
    void ajouter_label(GtkWidget *box)
    {
        GtkWidget *label;
     
        label = gtk_label_new("LABEL");
     
        gtk_box_pack_start (GTK_BOX(box), label, FALSE, FALSE, 3);
     
        gtk_widget_show(label);
    }
     
    int main(int argc, char* argv[])
    {
        GtkWidget *window;
        GtkWidget *box;
        GtkWidget *scrollbar;
        GtkWidget *bouton_ajouter;
     
        /* GTK+ */
     
        gtk_init(&argc, &argv);
     
        /* Window */
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_default_size(GTK_WINDOW(window), 320, 200);
        gtk_window_set_title(GTK_WINDOW(window), "Window");
     
        /* Box */
        box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
     
        /* Bouton */
        bouton_ajouter = gtk_button_new_with_label("Ajouter");
     
        /* Scrollbar */
        scrollbar = gtk_scrolled_window_new(NULL, NULL);
        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollbar), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
     
     
        gtk_container_add(GTK_CONTAINER(window),scrollbar);
        gtk_container_add(GTK_CONTAINER(scrollbar), box);
        gtk_box_pack_start(GTK_BOX(box), bouton_ajouter, FALSE, FALSE, 10);
     
        /* CALLBACK */
     
        g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
        g_signal_connect(G_OBJECT(bouton_ajouter), "clicked", G_CALLBACK(ajouter_label), &box);
     
        gtk_widget_show_all(window);
     
        gtk_main();
     
        return 0;
    }

  2. #2
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    octobre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : octobre 2016
    Messages : 2
    Points : 3
    Points
    3

    Par défaut La solution

    Je viens de trouver la solution !!

    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
     
     
    /*
            gcc `pkg-config --cflags --libs gtk+-3.0`
    */
     
    #include <gtk/gtk.h>
    #include <stdio.h>
     
    void ajouter_label(GtkWidget *widget, gpointer user_data)
    {
        GtkWidget *label;
     
        label = gtk_label_new("LABEL");
        gtk_box_pack_start(GTK_BOX(user_data), label, TRUE, FALSE, 0);
        gtk_widget_show_all(user_data);
    }
     
    int main(int argc, char* argv[])
    {
        GtkWidget *window;
        GtkWidget *box;
        GtkWidget *box_scrollbar;
        GtkWidget *scrollbar;
        GtkWidget *bouton_ajouter;
     
        /* GTK+ */
     
        gtk_init(&argc, &argv);
     
        /* Window */
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_default_size(GTK_WINDOW(window), 320, 200);
        gtk_window_set_title(GTK_WINDOW(window), "Window");
     
        /* Box */
        box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
        box_scrollbar = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
     
        /* Bouton */
        bouton_ajouter = gtk_button_new_with_label("Ajouter");
     
        /* Scrollbar */
        scrollbar = gtk_scrolled_window_new(NULL, NULL);
        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollbar), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
     
        gtk_container_add(GTK_CONTAINER(scrollbar), box_scrollbar);
     
        gtk_box_pack_start(GTK_BOX(box), bouton_ajouter, FALSE, FALSE, 10);
        gtk_box_pack_start(GTK_BOX(box), scrollbar, TRUE, TRUE, 10);
     
        gtk_container_add(GTK_CONTAINER(window),box);
     
        /* CALLBACK */
     
        g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
        g_signal_connect(G_OBJECT(bouton_ajouter), "clicked", G_CALLBACK(ajouter_label), box_scrollbar);
     
        gtk_widget_show_all(window);
     
        gtk_main();
     
        return 0;
    }

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

Discussions similaires

  1. [XL-2013] Lancer la création d'un fichier complété depuis un bouton excel
    Par b.nicolas dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 20/01/2015, 20h56
  2. Réponses: 2
    Dernier message: 14/04/2006, 08h48
  3. ouvrir une fenetre secondaire depuis 1 bouton
    Par TheBlackReverand dans le forum MFC
    Réponses: 7
    Dernier message: 16/03/2006, 22h02
  4. Réponses: 4
    Dernier message: 09/11/2005, 18h44
  5. Réponses: 6
    Dernier message: 04/08/2004, 16h09

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