Cours GTK 6
Cours GTK 6
Cours GTK 6
page=page_5
Forums Tutoriels Magazine FAQs Blogs Chat Newsletter tudes Emploi Club
Contacts
p
u
Developpez.com b
l
i
Tlcharger gratuitement le magazine des dveloppeurs, le bimestriel c
i
t
des dveloppeurs avec une slection des meilleurs tutoriels
Accueil ALM Java .NET Dv. Web EDI Programmation SGBD Office Solutions d'entreprise Applications Mobiles Systmes
Accueil C Forums C FAQ C Tutoriels C Livres C Compilateurs et outils C Sources C Bibliothques C GTK+
ACCUEIL GTK+ FORUM GTK+ FAQ GTK+ TUTORIELS GTK+ SOURCES GTK+ BIBLIOTHEQUES LIVRES GTK+ OUTILS GTK+
Cours GTK 2
Dans ce chapitre, notre objectif sera de crer une application contenant un bouton qui permettra
de quitter l'application.
Dans un premier temps, nous allons dclarer un pointeur vers une structure GtkWidget afin de
pouvoir ensuite crer le bouton.
Slectionnez
GtkWidget *pQuitBtn;
Ensuite, il faut initialiser le bouton. Pour cela, GTK+ permet l'utilisation de quatre fonctions
diffrentes :
Slectionnez
GtkWidget* gtk_button_new(void);
GtkWidget* gtk_button_new_with_label(const gchar *label);
GtkWidget* gtk_button_new_with_mnemonic(const gchar *label);
GtkWidget* gtk_button_new_from_stock(const gchar *stock_id);
La troisime fonction ajoute cela une nouvelle fonctionnalit. Elle permet, en plus d'afficher un
label, de faire ragir le bouton l'aide d'un raccourci clavier. La touche servant de raccourci est
spcifie dans le paramtre label. Il suffit de mettre _ devant la lettre souhaite pour que la
combinaison Atl+Touche active le bouton. Par exemple pour l'application de ce chapitre, le texte
afficher sera Quitter et si nous voulons que la combinaison de touches Atl+Q permette de
quitter l'application, le paramtre label devra tre _Quitter .
La quatrime fonction permet de crer un bouton avec un label, un raccourci clavier et une
image. Cependant, pour faire cela, GTK+ utilise les GtkStockItem qui est une structure contenant
Pour cela, nous allons surveiller le signal clicked qui est mis lorsque l'utilisateur clique sur le
bouton. Lorsque ce signal est reu nous allons appeler gtk_main_quit pour fermer l'application et
dtruire tous les widgets. La ligne de code est donc :
Slectionnez
g_signal_connect(G_OBJECT(pQuitBtn), "clicked", G_CALLBACK(gtk_main_quit), NULL);
Slectionnez
#include <stdlib.h>
#include <gtk/gtk.h>
#define EXEMPLE_1 0
#define EXEMPLE_2 1
#define EXEMPLE_3 2
void AddBtn(GtkWidget *pWindow, gint iExemple);
int main(int argc, char **argv)
{
GtkWidget* pWindow;
gtk_init(&argc, &argv);
/* Creation de la fenetre */
pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(pWindow), 320 ,200);
Parametre :
- pWindow : fenetre parente
- iExemple : mode de creation
EXEMPLE_1 pour un bouton label
EXEMPLE_2 pour un bouton EXEMPLE_1 + raccourci
EXEMPLE_3 pour un bouton EXEMPLE_2 + image
*/
void AddBtn(GtkWidget *pWindow, gint iExemple)
{
GtkWidget *pQuitBtn;
switch(iExemple)
{
default:
case EXEMPLE_1:
/* Bouton avec un label */
pQuitBtn = gtk_button_new_with_label("Quitter");
gtk_window_set_title(GTK_WINDOW(pWindow), "Les boutons - Exemple 1");
break;
case EXEMPLE_2:
/* Bouton avec un label et un raccourci */
pQuitBtn = gtk_button_new_with_mnemonic("_Quitter");
gtk_window_set_title(GTK_WINDOW(pWindow), "Les boutons - Exemple 2");
break;
case EXEMPLE_3:
/* Bouton avec un label, un raccourci et une image */
pQuitBtn = gtk_button_new_from_stock(GTK_STOCK_QUIT);
gtk_window_set_title(GTK_WINDOW(pWindow), "Les boutons - Exemple 3");
break;
}
/* Connexion du signal "clicked" du bouton */
g_signal_connect(G_OBJECT(pQuitBtn), "clicked", G_CALLBACK(gtk_main_quit), NULL);
/* Insertion du bouton dans la fenetre */
gtk_container_add(GTK_CONTAINER(pWindow), pQuitBtn);
}
Rsultat :
iExemple = EXEMPLE_1
iExemple = EXEMPLE_2
iExemple = EXEMPLE_3
V-B-1. Signaux
activate
Ce signal est mis lorsque le bouton a le focus est que l'on appuie sur la touche
Enter .
Slectionnez
void user_function(GtkButton *button, gpointer user_data);
enter
Ce signal est mis lorsque le pointeur de la souris entre dans la zone du bouton.
Slectionnez
void user_function(GtkButton *button, gpointer user_data);
leave
Slectionnez
void user_function(GtkButton *button, gpointer user_data);
pressed
Slectionnez
void user_function(GtkButton *button, gpointer user_data);
released
Slectionnez
void user_function(GtkButton *button, gpointer user_data);
Slectionnez
void gtk_button_pressed(GtkButton *button);
Entre(s) :
button : le bouton.
Sortie : rien.
Slectionnez
void gtk_button_released(GtkButton *button);
Entre(s) :
Sortie : rien.
Slectionnez
void gtk_button_clicked(GtkButton *button);
Entre(s) :
button : le bouton.
Sortie : rien.
Slectionnez
void gtk_button_enter(GtkButton *button);
Entre(s) :
button : le bouton.
Sortie : rien.
Slectionnez
void gtk_button_leave(GtkButton *button);
Entre(s) :
button : le bouton.
Sortie :rien.
Slectionnez
void gtk_button_set_relief(GtkButton *button, GtkReliefStyle newstyle);
Entre(s) :
button : le bouton.
newstyle : style du bouton.
Sortie : rien.
Slectionnez
GtkReliefStyle gtk_button_get_relief(GtkButton *button);
Entre(s) :
button : le bouton.
Sortie : GtkReliefStyle.
Slectionnez
void gtk_button_set_label(GtkButton *button, const gchar *label);
Entre(s) :
button : le bouton.
label : le texte afficher.
Sortie : rien.
Slectionnez
G_CONST_RETURN gchar* gtk_button_get_label(GtkButton *button);
Entre(s) :
button : le bouton.
Slectionnez
gboolean gtk_button_get_use_stock(GtkButton *button);
Entre(s) :
button : le bouton.
Slectionnez
void gtk_button_set_use_stock(GtkButton *button, gboolean use_stock);
Entre(s) :
button : le bouton.
use_stock : TRUE pour utiliser GtkStockItem, FALSE sinon.
Sortie : rien.
Slectionnez
gboolean gtk_button_get_use_underline(GtkButton *button);
Entre(s) :
button : le bouton.
Slectionnez
void gtk_button_set_use_underline(GtkButton *button, gboolean use_underline);
Entre(s) :
button : le bouton.
use_underline : TRUE pour utiliser le raccourci, FALSE sinon.
Sortie : rien.
Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre
convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits
d'auteur. Copyright 2013 developpez. Aucune reproduction, mme partielle, ne peut tre faite de ce
site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de
l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages
et intrts.