begin process at 2012 02 08 09:21:19
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

GTK+

 > EXEMPLE DE PLACEMENT DE WIDGETS

EXEMPLE DE PLACEMENT DE WIDGETS


 Information sur la source

 Description


Source

  • #include "gtk/gtk.h"
  • void
  • delete_event (GtkWidget *widget, GdkEvent *event, gpointer *data)
  • {
  • gtk_main_quit ();
  • }
  • /* Construction d'une nouvelle hbox remplie de boutons. Les paramètres qui
  • * nous intéressent sont passés à cette fonction.
  • * On n'affiche pas la boîte, mais tout ce qu'elle contient. */
  • GtkWidget *make_box (gint homogeneous, gint spacing,
  • gint expand, gint fill, gint padding)
  • {
  • GtkWidget *box;
  • GtkWidget *button;
  • char padstr[80];
  • /* Création d'une hbox avec les paramètres homogeneous et spacing
  • * voulus. */
  • box = gtk_hbox_new (homogeneous, spacing);
  • /* Création d'une série de boutons configurés de façon appropriée */
  • button = gtk_button_new_with_label ("gtk_box_pack");
  • gtk_box_pack_start (GTK_BOX (box), button, expand, fill, padding);
  • gtk_widget_show (button);
  • button = gtk_button_new_with_label ("(box,");
  • gtk_box_pack_start (GTK_BOX (box), button, expand, fill, padding);
  • gtk_widget_show (button);
  • button = gtk_button_new_with_label ("button,");
  • gtk_box_pack_start (GTK_BOX (box), button, expand, fill, padding);
  • gtk_widget_show (button);
  • /* Création d'un bouton portant un label dépendant de la valeur
  • * du paramètre expand. */
  • if (expand == TRUE)
  • button = gtk_button_new_with_label ("TRUE,");
  • else
  • button = gtk_button_new_with_label ("FALSE,");
  • gtk_box_pack_start (GTK_BOX (box), button, expand, fill, padding);
  • gtk_widget_show (button);
  • /* Même chose que ci-dessus mais sous forme abrégée. */
  • button = gtk_button_new_with_label (fill ? "TRUE," : "FALSE,");
  • gtk_box_pack_start (GTK_BOX (box), button, expand, fill, padding);
  • gtk_widget_show (button);
  • /* Récupération du paramètre padding sous forme de chaîne. */
  • sprintf (padstr, "%d);", padding);
  • button = gtk_button_new_with_label (padstr);
  • gtk_box_pack_start (GTK_BOX (box), button, expand, fill, padding);
  • gtk_widget_show (button);
  • return box;
  • }
  • int main (int argc, char *argv[])
  • {
  • GtkWidget *window;
  • GtkWidget *button;
  • GtkWidget *box1;
  • GtkWidget *box2;
  • GtkWidget *separator;
  • GtkWidget *label;
  • GtkWidget *quitbox;
  • int which;
  • /* Initialisation, à ne jamais oublier ! :) */
  • gtk_init (&argc, &argv);
  • if (argc != 2) {
  • fprintf (stderr, "usage : %s num, où num vaut 1, 2, ou 3.\n", *argv);
  • /* Nettoyage dans GTK et sortie avec un code d'erreur de 1 */
  • gtk_exit (1);
  • }
  • which = atoi (argv[1]);
  • /* Création de notre fenêtre. */
  • window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  • /* Il ne faut jamais oublier de connecter le signal "destroy" à la
  • * fenêtre principale. C'est très important pour disposer d'un
  • * comportement intuitif adéquat. */
  • gtk_signal_connect (GTK_OBJECT (window), "delete_event",
  • GTK_SIGNAL_FUNC (delete_event), NULL);
  • gtk_container_border_width (GTK_CONTAINER (window), 10);
  • /* Création d'une boîte verticale (vbox) pour y placer les boîtes
  • * horizontales.
  • * Ceci permet de placer les boîtes horizontales contenant les boutons
  • * les unes au dessus des autres dans cette vbox. */
  • box1 = gtk_vbox_new (FALSE, 0);
  • /* L'exemple à afficher. Ils correspondent aux images ci-dessus. */
  • switch (which) {
  • case 1:
  • /* Création d'un label. */
  • label = gtk_label_new ("gtk_hbox_new (FALSE, 0);");
  • /* Alignement du label à gauche. On précisera cette fonction ainsi
  • * que les autres dans la section sur les attributs des widgets. */
  • gtk_misc_set_alignment (GTK_MISC (label), 0, 0);
  • /* Placement du label dans la boîte verticale (vbox box1). Il ne
  • * faut pas oublier que les widgets qui s'ajoutent à une vbox sont
  • * placés les uns au dessus des autres. */
  • gtk_box_pack_start (GTK_BOX (box1), label, FALSE, FALSE, 0);
  • /* Affichage du label */
  • gtk_widget_show (label);
  • /* On appelle notre fonction de construction de boîte :
  • * homogeneous = FALSE, spacing = 0,
  • * expand = FALSE, fill = FALSE, padding = 0 */
  • box2 = make_box (FALSE, 0, FALSE, FALSE, 0);
  • gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
  • gtk_widget_show (box2);
  • /* On appelle notre fonction de construction de boîte :
  • * homogeneous = FALSE, spacing = 0,
  • * expand = FALSE, fill = FALSE, padding = 0 */
  • box2 = make_box (FALSE, 0, TRUE, FALSE, 0);
  • gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
  • gtk_widget_show (box2);
  • /* Paramètres : homogeneous = FALSE, spacing = 0,
  • * expand = TRUE, fill = TRUE, padding = 0 */
  • box2 = make_box (FALSE, 0, TRUE, TRUE, 0);
  • gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
  • gtk_widget_show (box2);
  • /* Création d'un séparateur, on verra cela plus tard, mais ils sont
  • * simples à utiliser. */
  • separator = gtk_hseparator_new ();
  • /* Placement du séparateur dans la vbox. Ne pas oublier que tous les
  • * widgets sont placés dans une vbox et qu'il seront placés
  • * verticalement. */
  • gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 5);
  • gtk_widget_show (separator);
  • /* Création d'un nouveau label et affichage de celui-ci. */
  • label = gtk_label_new ("gtk_hbox_new (TRUE, 0);");
  • gtk_misc_set_alignment (GTK_MISC (label), 0, 0);
  • gtk_box_pack_start (GTK_BOX (box1), label, FALSE, FALSE, 0);
  • gtk_widget_show (label);
  • /* Paramètres : homogeneous = TRUE, spacing = 0,
  • * expand = TRUE, fill = FALSE, padding = 0 */
  • box2 = make_box (TRUE, 0, TRUE, FALSE, 0);
  • gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
  • gtk_widget_show (box2);
  • /* Paramètres : homogeneous = TRUE, spacing = 0,
  • * expand = TRUE, fill = TRUE, padding = 0 */
  • box2 = make_box (TRUE, 0, TRUE, TRUE, 0);
  • gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
  • gtk_widget_show (box2);
  • /* Un autre séparateur */
  • separator = gtk_hseparator_new ();
  • /* Les 3 derniers paramètres de gtk_box_pack_start sont :
  • * expand = FALSE, fill = TRUE, padding = 5. */
  • gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 5);
  • gtk_widget_show (separator);
  • break;
  • case 2:
  • /* Création d'un label, box1 est une vbox identique à
  • * celle créée au début de main() */
  • label = gtk_label_new ("gtk_hbox_new (FALSE, 10);");
  • gtk_misc_set_alignment (GTK_MISC (label), 0, 0);
  • gtk_box_pack_start (GTK_BOX (box1), label, FALSE, FALSE, 0);
  • gtk_widget_show (label);
  • /* Paramètres : homogeneous = FALSE, spacing = 10,
  • * expand = TRUE, fill = FALSE, padding = 0 */
  • box2 = make_box (FALSE, 10, TRUE, FALSE, 0);
  • gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
  • gtk_widget_show (box2);
  • /* Paramètres : homogeneous = FALSE, spacing = 10,
  • * expand = TRUE, fill = TRUE, padding = 0 */
  • box2 = make_box (FALSE, 10, TRUE, TRUE, 0);
  • gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
  • gtk_widget_show (box2);
  • separator = gtk_hseparator_new ();
  • /* Les 3 derniers paramètres de gtk_box_pack_start sont :
  • * expand = FALSE, fill = TRUE, padding = 5. */
  • gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 5);
  • gtk_widget_show (separator);
  • label = gtk_label_new ("gtk_hbox_new (FALSE, 0);");
  • gtk_misc_set_alignment (GTK_MISC (label), 0, 0);
  • gtk_box_pack_start (GTK_BOX (box1), label, FALSE, FALSE, 0);
  • gtk_widget_show (label);
  • /* Paramètres : homogeneous = FALSE, spacing = 0,
  • * expand = TRUE, fill = FALSE, padding = 10 */
  • box2 = make_box (FALSE, 0, TRUE, FALSE, 10);
  • gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
  • gtk_widget_show (box2);
  • /* Paramètres : homogeneous = FALSE, spacing = 0,
  • * expand = TRUE, fill = TRUE, padding = 10 */
  • box2 = make_box (FALSE, 0, TRUE, TRUE, 10);
  • gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
  • gtk_widget_show (box2);
  • separator = gtk_hseparator_new ();
  • /* Les 3 derniers paramètres de gtk_box_pack_start sont :
  • * expand = FALSE, fill = TRUE, padding = 5. */
  • gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 5);
  • gtk_widget_show (separator);
  • break;
  • case 3:
  • /* Ceci est une démonstration de la possibilité d'utiliser
  • * gtk_box_pack_end() pour aligner les widgets à droite.
  • * On crée d'abord une nouvelle boîte comme d'habitude. */
  • box2 = make_box (FALSE, 0, FALSE, FALSE, 0);
  • /* On crée le label qui sera mis à la fin. */
  • label = gtk_label_new ("end");
  • /* On le place en utilisant gtk_box_pack_end(), il est ainsi
  • * mis à droite de la hbox créée par l'appel à make_box(). */
  • gtk_box_pack_end (GTK_BOX (box2), label, FALSE, FALSE, 0);
  • /* Affichage du label. */
  • gtk_widget_show (label);
  • /* Placement de box2 dans box1 (la vbox, vous vous rappelez ? :) */
  • gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
  • gtk_widget_show (box2);
  • /* Séparateur pour le bas. */
  • separator = gtk_hseparator_new ();
  • /* Configuration du séparateur en 400x5 pixels.
  • * La hbox que l'on a créée aura donc 400 pixels de large,
  • * et le label "end" sera séparé des autres de la hbox.
  • * Sinon, tous les widgets de la hbox seraient placés les plus
  • * près possible les uns des autres. */
  • gtk_widget_set_usize (separator, 400, 5);
  • /* Placement du séparateur dans la vbox (box1)
  • * créée au debut de main(). */
  • gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 5);
  • gtk_widget_show (separator);
  • }
  • /* Création d'une nouvelle hbox.. vous pouvez en utiliser autant que
  • * que vous en avez besoin ! */
  • quitbox = gtk_hbox_new (FALSE, 0);
  • /* Notre bouton pour quitter. */
  • button = gtk_button_new_with_label ("Quit");
  • /* Configuration du signal pour détruire la fenêtre. Ceci enverra le
  • * signal "destroy" à la fenêtre. Ce signal sera à son tour capturé
  • * par notre gestionnaire de signal défini plus haut. */
  • gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
  • GTK_SIGNAL_FUNC (gtk_widget_destroy),
  • GTK_OBJECT (window));
  • /* Placement du bouton dans la « quitbox ».
  • * Les 3 derniers paramètres de gtk_box_pack_start sont :
  • * expand = TRUE, fill = FALSE, padding = 0. */
  • gtk_box_pack_start (GTK_BOX (quitbox), button, TRUE, FALSE, 0);
  • /* Placement de la quitbox dans la vbox (box1) */
  • gtk_box_pack_start (GTK_BOX (box1), quitbox, FALSE, FALSE, 0);
  • /* Placement de la vbox (box1), qui contient maintenant tous nos
  • * widgets, dans la fenêtre principale. */
  • gtk_container_add (GTK_CONTAINER (window), box1);
  • /* Affichage */
  • gtk_widget_show (button);
  • gtk_widget_show (quitbox);
  • gtk_widget_show (box1);
  • /* Affichage de la fenêtre en dernier */
  • gtk_widget_show (window);
  • /* Ne pas oublier notre fonction principale. */
  • gtk_main ();
  • /* Le contrôle revient ici lorsque gtk_main_quit() est appelée,
  • * jusqu'à ce que gtk_exit() soitutilisée. */
  • return 0;
  • }
#include "gtk/gtk.h"

void
delete_event (GtkWidget *widget, GdkEvent *event, gpointer *data)
{
    gtk_main_quit ();
}

/* Construction d'une nouvelle hbox remplie de boutons. Les paramètres qui 
 * nous intéressent sont passés à cette fonction.
 * On n'affiche pas la boîte, mais tout ce qu'elle contient. */

GtkWidget *make_box (gint homogeneous, gint spacing,
                     gint expand, gint fill, gint padding) 
{
    GtkWidget *box;
    GtkWidget *button;
    char padstr[80];
    
    /* Création d'une hbox avec les paramètres homogeneous et spacing
     * voulus. */

    box = gtk_hbox_new (homogeneous, spacing);
    
    /* Création d'une série de boutons configurés de façon appropriée */

    button = gtk_button_new_with_label ("gtk_box_pack");
    gtk_box_pack_start (GTK_BOX (box), button, expand, fill, padding);
    gtk_widget_show (button);
    
    button = gtk_button_new_with_label ("(box,");
    gtk_box_pack_start (GTK_BOX (box), button, expand, fill, padding);
    gtk_widget_show (button);
    
    button = gtk_button_new_with_label ("button,");
    gtk_box_pack_start (GTK_BOX (box), button, expand, fill, padding);
    gtk_widget_show (button);
    
    /* Création d'un bouton portant un label dépendant de la valeur
     * du paramètre expand. */

    if (expand == TRUE)
            button = gtk_button_new_with_label ("TRUE,");
    else
            button = gtk_button_new_with_label ("FALSE,");
    
    gtk_box_pack_start (GTK_BOX (box), button, expand, fill, padding);
    gtk_widget_show (button);
    
    /* Même chose que ci-dessus mais sous forme abrégée. */

    button = gtk_button_new_with_label (fill ? "TRUE," : "FALSE,");
    gtk_box_pack_start (GTK_BOX (box), button, expand, fill, padding);
    gtk_widget_show (button);
    
    /* Récupération du paramètre padding sous forme de chaîne. */

    sprintf (padstr, "%d);", padding);
    
    button = gtk_button_new_with_label (padstr);
    gtk_box_pack_start (GTK_BOX (box), button, expand, fill, padding);
    gtk_widget_show (button);
    
    return box;
}

int main (int argc, char *argv[])
{
    GtkWidget *window;
    GtkWidget *button;
    GtkWidget *box1;
    GtkWidget *box2;
    GtkWidget *separator;
    GtkWidget *label;
    GtkWidget *quitbox;
    int which;
    
    /* Initialisation, à ne jamais oublier ! :) */

    gtk_init (&argc, &argv);
   
    if (argc != 2) {
        fprintf (stderr, "usage : %s num, où num vaut 1, 2, ou 3.\n", *argv);

        /* Nettoyage dans GTK et sortie avec un code d'erreur de 1 */
        gtk_exit (1);
    }
    
    which = atoi (argv[1]);

    /* Création de notre fenêtre. */

    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

    /* Il ne faut jamais oublier de connecter le signal "destroy" à la
     * fenêtre principale. C'est très important pour disposer d'un 
     * comportement intuitif adéquat. */

    gtk_signal_connect (GTK_OBJECT (window), "delete_event",
                        GTK_SIGNAL_FUNC (delete_event), NULL);

    gtk_container_border_width (GTK_CONTAINER (window), 10);
    

    /* Création d'une boîte verticale (vbox) pour y placer les boîtes
     * horizontales.
     * Ceci permet de placer les boîtes horizontales contenant les boutons
     * les unes au dessus des autres dans cette vbox. */

    box1 = gtk_vbox_new (FALSE, 0);
    
    /* L'exemple à afficher. Ils correspondent aux images ci-dessus. */

    switch (which) {
    case 1:
        /* Création d'un label. */

        label = gtk_label_new ("gtk_hbox_new (FALSE, 0);");
        
        /* Alignement du label à gauche.  On précisera cette fonction ainsi
         * que les autres dans la section sur les attributs des widgets. */

        gtk_misc_set_alignment (GTK_MISC (label), 0, 0);

        /* Placement du label dans la boîte verticale (vbox box1). Il ne
         * faut pas oublier que les widgets qui s'ajoutent à une vbox sont
         * placés les uns au dessus des autres. */

        gtk_box_pack_start (GTK_BOX (box1), label, FALSE, FALSE, 0);
        
        /* Affichage du label */

        gtk_widget_show (label);
        
        /* On appelle notre fonction de construction de boîte :
         * homogeneous = FALSE, spacing = 0,
         * expand = FALSE, fill = FALSE, padding = 0 */

        box2 = make_box (FALSE, 0, FALSE, FALSE, 0);
        gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
        gtk_widget_show (box2);

        /* On appelle notre fonction de construction de boîte :
         * homogeneous = FALSE, spacing = 0,
         * expand = FALSE, fill = FALSE, padding = 0 */

        box2 = make_box (FALSE, 0, TRUE, FALSE, 0);
        gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
        gtk_widget_show (box2);
        
        /* Paramètres : homogeneous = FALSE, spacing = 0, 
         * expand = TRUE, fill = TRUE, padding = 0 */

        box2 = make_box (FALSE, 0, TRUE, TRUE, 0);
        gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
        gtk_widget_show (box2);
        
        /* Création d'un séparateur, on verra cela plus tard, mais ils sont
         * simples à utiliser. */

        separator = gtk_hseparator_new ();
        
        /* Placement du séparateur dans la vbox. Ne pas oublier que tous les
         * widgets sont placés dans une vbox et qu'il seront placés 
         * verticalement. */

        gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 5);
        gtk_widget_show (separator);
        
        /* Création d'un nouveau label et affichage de celui-ci. */

        label = gtk_label_new ("gtk_hbox_new (TRUE, 0);");
        gtk_misc_set_alignment (GTK_MISC (label), 0, 0);
        gtk_box_pack_start (GTK_BOX (box1), label, FALSE, FALSE, 0);
        gtk_widget_show (label);
        
        /* Paramètres : homogeneous = TRUE, spacing = 0, 
         * expand = TRUE, fill = FALSE, padding = 0 */

        box2 = make_box (TRUE, 0, TRUE, FALSE, 0);
        gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
        gtk_widget_show (box2);
        
        /* Paramètres : homogeneous = TRUE, spacing = 0, 
         * expand = TRUE, fill = TRUE, padding = 0 */

        box2 = make_box (TRUE, 0, TRUE, TRUE, 0);
        gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
        gtk_widget_show (box2);
        
        /* Un autre séparateur */

        separator = gtk_hseparator_new ();

        /* Les 3 derniers paramètres de gtk_box_pack_start sont : 
         * expand = FALSE, fill = TRUE, padding = 5. */

        gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 5);
        gtk_widget_show (separator);
        
        break;

    case 2:

        /* Création d'un label, box1 est une vbox identique à 
         * celle créée au début de main() */

        label = gtk_label_new ("gtk_hbox_new (FALSE, 10);");
        gtk_misc_set_alignment (GTK_MISC (label), 0, 0);
        gtk_box_pack_start (GTK_BOX (box1), label, FALSE, FALSE, 0);
        gtk_widget_show (label);
        
        /* Paramètres : homogeneous = FALSE, spacing = 10, 
         * expand = TRUE, fill = FALSE, padding = 0 */

        box2 = make_box (FALSE, 10, TRUE, FALSE, 0);
        gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
        gtk_widget_show (box2);
        
        /* Paramètres : homogeneous = FALSE, spacing = 10, 
         * expand = TRUE, fill = TRUE, padding = 0 */

        box2 = make_box (FALSE, 10, TRUE, TRUE, 0);
        gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
        gtk_widget_show (box2);
        
        separator = gtk_hseparator_new ();

        /* Les 3 derniers paramètres de gtk_box_pack_start sont : 
         * expand = FALSE, fill = TRUE, padding = 5. */

        gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 5);
        gtk_widget_show (separator);
        
        label = gtk_label_new ("gtk_hbox_new (FALSE, 0);");
        gtk_misc_set_alignment (GTK_MISC (label), 0, 0);
        gtk_box_pack_start (GTK_BOX (box1), label, FALSE, FALSE, 0);
        gtk_widget_show (label);
        
        /* Paramètres : homogeneous = FALSE, spacing = 0, 
         * expand = TRUE, fill = FALSE, padding = 10 */

        box2 = make_box (FALSE, 0, TRUE, FALSE, 10);
        gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
        gtk_widget_show (box2);
        
        /* Paramètres : homogeneous = FALSE, spacing = 0, 
         * expand = TRUE, fill = TRUE, padding = 10 */

        box2 = make_box (FALSE, 0, TRUE, TRUE, 10);
        gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
        gtk_widget_show (box2);
        
        separator = gtk_hseparator_new ();

        /* Les 3 derniers paramètres de gtk_box_pack_start sont : 
         * expand = FALSE, fill = TRUE, padding = 5. */
        
        gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 5);
        gtk_widget_show (separator);
        break;
    
    case 3:

        /* Ceci est une démonstration de la possibilité d'utiliser 
         * gtk_box_pack_end() pour aligner les widgets à droite.
         * On crée d'abord une nouvelle boîte comme d'habitude. */

        box2 = make_box (FALSE, 0, FALSE, FALSE, 0);

        /* On crée le label qui sera mis à la fin. */

        label = gtk_label_new ("end");

        /* On le place en utilisant gtk_box_pack_end(), il est ainsi
         * mis à droite de la hbox créée par l'appel à make_box(). */

        gtk_box_pack_end (GTK_BOX (box2), label, FALSE, FALSE, 0);

        /* Affichage du label. */

        gtk_widget_show (label);
        
        /* Placement de box2 dans box1 (la vbox, vous vous rappelez ? :) */

        gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
        gtk_widget_show (box2);
        
        /* Séparateur pour le bas. */

        separator = gtk_hseparator_new ();

        /* Configuration du séparateur en 400x5 pixels. 
         * La hbox que l'on a créée aura donc 400 pixels de large, 
         * et le label "end" sera séparé des autres de la hbox.
         * Sinon, tous les widgets de la hbox seraient placés les plus
         * près possible les uns des autres. */

        gtk_widget_set_usize (separator, 400, 5);

        /* Placement du séparateur dans la vbox (box1) 
         * créée au debut de main(). */

        gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 5);
        gtk_widget_show (separator);    
    }
    
    /* Création d'une nouvelle hbox.. vous pouvez en utiliser autant que
     * que vous en avez besoin ! */

    quitbox = gtk_hbox_new (FALSE, 0);
    
    /* Notre bouton pour quitter. */

    button = gtk_button_new_with_label ("Quit");
    
    /* Configuration du signal pour détruire la fenêtre. Ceci enverra le
     * signal "destroy" à la fenêtre. Ce signal sera à son tour capturé
     * par notre gestionnaire de signal défini plus haut. */

    gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
                               GTK_SIGNAL_FUNC (gtk_widget_destroy),
                               GTK_OBJECT (window));

    /* Placement du bouton dans la « quitbox ».
     * Les 3 derniers paramètres de gtk_box_pack_start sont : 
     * expand = TRUE, fill = FALSE, padding = 0. */

    gtk_box_pack_start (GTK_BOX (quitbox), button, TRUE, FALSE, 0);

    /* Placement de la quitbox dans la vbox (box1) */

    gtk_box_pack_start (GTK_BOX (box1), quitbox, FALSE, FALSE, 0);
    
    /* Placement de la vbox (box1), qui contient maintenant tous nos
     * widgets, dans la fenêtre principale. */

    gtk_container_add (GTK_CONTAINER (window), box1);
    
    /* Affichage */

    gtk_widget_show (button);
    gtk_widget_show (quitbox);
    
    gtk_widget_show (box1);

    /* Affichage de la fenêtre en dernier */

    gtk_widget_show (window);
    
    /* Ne pas oublier notre fonction principale. */

    gtk_main ();

    /* Le contrôle revient ici lorsque gtk_main_quit() est appelée,
     * jusqu'à ce que  gtk_exit() soitutilisée. */
    
    return 0;
}
 



 Sources du même auteur

AFFICHER/CACHER LES ICONES DU BUREAU
CREATION D'AUTORUN
INFORMATION D'UN LECTEUR
CREE UN RACOURCI
CONVERSION DECIMALE -> BINAIRE

 Sources de la même categorie

Source avec Zip Source avec une capture INFORMATION GTK CONCERNANT UNE TOUCHE par Phelim
Source avec Zip Source avec une capture BINARY CLOCK GTK AVEC CONTRÔLE EN TRAY SOUS LINUX par dje_jay
Source avec Zip Source avec une capture [GTK+] FENÊTRE POPUP ANIMÉE EN BAS À DROITE DE L' ÉCRAN par katsankat
Source avec Zip GTK _CALCUL par jabirmed
Source avec Zip DICTIONNER RECHERCHE GTK par jabirmed

Commentaires et avis

Commentaire de rvw27 le 29/11/2004 17:49:43

slt jvoudrais savoir un truc ki va te paraitre tout con mè jsuis pa expert en c++
jvoulè savoir le code qu'il fo rajouter pr une fenetre active en cliquant sur un bouton annuler que g créé et aussi ou il fallait rajouter ce code
merci d'avance
voila ce ke me génère glade:

#include "config.h"
#include "soumettre.hh"

void soumettre::on_soumettreparcourir_activate()
{  
}

void soumettre::on_soumettreannuler_activate()
{  

}

void soumettre::on_soumettreok_activate()
{  
}

Commentaire de rvw27 le 29/11/2004 17:50:19

salut je voudrais savoir un truc qui va te paraître tout con mais je suis pas expert en c++
je voulais savoir le code qu'il faut rajouter pour une fenêtre active en cliquant sur un bouton annuler que g créé et aussi ou il fallait rajouter ce code
merci d'avance
voila ce que me génère glade:

#include "config.h"
#include "soumettre.hh"

void soumettre::on_soumettreparcourir_activate()
{  
}

void soumettre::on_soumettreannuler_activate()
{  

}

void soumettre::on_soumettreok_activate()
{  
}

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales