Exemple de fenetre en gtk+

Contenu du snippet

Voila un exemple pour savoir comment fonctionne les fenetre, haut niveau et de dialogue. Mais on peut egalement faire des fenetre transparante ;).

Source / Exemple :


// window.c
// Exemple de fenetre en gtk+

#include <gtk/gtk.h>

int main(int argc, char *argv[])
{

	GtkWidget *Fenetre, *Dialogue, *Label, *Bouton, *Bt;

	gtk_init(&argc, &argv);

	// cree une fenetre haut niveau
	Fenetre = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(Fenetre), "Fenetre principale");
	// pour quitter proprement le programme lorsque vous appuyez sur la croix.
	gtk_signal_connect_object(GTK_OBJECT(Fenetre), "destroy", (GtkSignalFunc)gtk_exit, NULL);
	gtk_signal_connect_object(GTK_OBJECT(Fenetre), "delete_event", (GtkSignalFunc)gtk_exit, NULL);

	
	// y donne une taille par defaut
	gtk_widget_set_usize(GTK_WIDGET(Fenetre), 200, 100);

	// permet de placer la fenetre au centre ou GTK_WIN_POS_MOUSE et GTK_WIN_POS_NONE
	gtk_window_set_position(GTK_WINDOW(Fenetre), GTK_WIN_POS_CENTER);

	// cree une fenetre de dialogue -moin decore
	// elle possede deux container separe par une barre
	Dialogue = gtk_dialog_new();
	//met la boite de dialoque en modal
	gtk_window_set_modal(GTK_WINDOW(Dialogue), TRUE);
	gtk_window_set_position(GTK_WINDOW(Fenetre), GTK_WIN_POS_MOUSE);
	gtk_window_set_title(GTK_WINDOW(Dialogue), "Boite de dialogue");
	
	Bt = gtk_button_new_with_label("Afficher la \nboite de dialogue");
	// montre la fenetre en appelant gtk_widget_show(Dialogue);
	gtk_signal_connect_object(GTK_OBJECT(Bt), "clicked", (GtkSignalFunc)gtk_widget_show_all, (GtkObject*)Dialogue);
	gtk_container_add(GTK_CONTAINER(Fenetre), Bt);

	Label = gtk_label_new("Je suis une fenetre\nmodale.");
	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(Dialogue)->vbox), Label, TRUE, TRUE, 0);

	Bouton = gtk_button_new_with_label("Fermer");
	// cache la fenetre en appelant gtk_widget_hide(Dialogue);
	gtk_signal_connect_object(GTK_OBJECT(Bouton), "clicked", (GtkSignalFunc)gtk_widget_hide_all, (GtkObject*)Dialogue);
	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(Dialogue)->action_area), Bouton , TRUE, TRUE, 0);

	gtk_widget_show_all(Fenetre);

	gtk_main();
	
	return(0);
}

Conclusion :


Il existe evidement bien d'autres fonction pour gerer les fenetre. je vous conseille de voir e site http://www.gtk.org

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.