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 :

comment gérer les évenements clavier ?


Sujet :

GTK+ avec C & C++

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 31
    Points : 20
    Points
    20
    Par défaut comment gérer les évenements clavier ?
    Bonjour,


    Je voudrais savoir comment gérer un appui constant sur une touche du clavier avec gtk ? je programme en C.

    Je sais qu'il faut utiliser gdk, mais seulement il ne nous dit pas comment gérer l'appui constant.


    Je vous remercie d'avance pour vos réponse.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Portugal

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2009
    Messages : 27
    Points : 37
    Points
    37
    Par défaut
    Tu peux consulter la documentation ici.

    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
     
    #include <gtk/gtk.h>
     
    static void key_press_event (GtkWidget *window, GdkEventKey *gkey, GtkWidget *label);
     
    int main (int argc, char **argv)
    {
    GtkWidget *window;
    GtkWidget *vbox;
    GtkWidget *label;
     
    	gtk_init (&argc, &argv);
     
    	window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    	gtk_window_set_title (GTK_WINDOW(window), "Key-pressed");
    	gtk_window_set_default_size (GTK_WINDOW(window), 200, 100);
    	g_signal_connect (G_OBJECT(window), "destroy", gtk_main_quit, NULL);
     
    	vbox = gtk_vbox_new (TRUE, 0);
    	gtk_container_add (GTK_CONTAINER(window), vbox);
     
    	label = gtk_label_new ("Example...");
    	gtk_box_pack_start (GTK_BOX(vbox), label, FALSE, FALSE, 0);
    	gtk_label_set_selectable (GTK_LABEL(label), TRUE);
    	g_signal_connect (GTK_OBJECT(window), "key-press-event", G_CALLBACK(key_press_event), (gpointer)label);
     
    	gtk_widget_show_all (window);
    	gtk_main ();
    }
     
    static void key_press_event (GtkWidget *window, GdkEventKey *gkey, GtkWidget *label)
    {
    	if (gkey->type == GDK_KEY_PRESS)
    	{
    		g_print ("Key: %i\n", gkey->keyval);
    		if (gkey->keyval == 'a')
    			gtk_label_set_text (GTK_LABEL(label), "Pressed 'a'");
    		else if (gkey->keyval == 'b')
    			gtk_label_set_text (GTK_LABEL(label), "Pressed 'b");
    		else
    			gtk_label_set_text (GTK_LABEL(label), "Example...");
    	}
    }

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Merci

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

Discussions similaires

  1. Comment gérer les évenements sur un JTextArea
    Par chaime4 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 07/04/2015, 10h04
  2. Réponses: 1
    Dernier message: 22/03/2008, 15h52
  3. Gérer les évenements clavier
    Par Telemak dans le forum NetBeans
    Réponses: 10
    Dernier message: 25/07/2007, 21h25
  4. Réponses: 12
    Dernier message: 22/11/2005, 13h17
  5. Réponses: 5
    Dernier message: 25/07/2005, 09h29

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