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 :

PB avec gtk_widget_grab_focus


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 101
    Par défaut PB avec gtk_widget_grab_focus
    bonsoir ou bonjour

    je n'arrive pas à utilise la fonction "gtk_widget_grab_focus"

    dans mon appli j'ai une boite de dialog(PBoite) qui s'affiche avant la fenetre principale,
    dans cette boite de dialog(PBoite) j'ai 2 gtkentry, un nom user(PEntry) et un password(PPassword)
    quand j'appuis sur entrer je voudrais passe le focus de PEntry vers PPassword,
    mais il ne ce passe rien

    voici pour la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void Focus_PEntry(GtkWidget *widget)
    {
    gtk_widget_grab_focus(PPassword);
    }
    pour le signal dans main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    g_signal_connect(G_OBJECT(PEntry),"activate",G_CALLBACK(Focus_PEntry),PBoite);
    hors du main:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    static GtkWidget *PBoite;
    static GtkWidget *PEntry;
    static GtkWidget *PPassword;
    pas d'erreur à la compilation.

    merci pour votre aide

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    Bon je me suis un peu amuser avec ton histoire :
    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
    #include <gtk/gtk.h>
    #include <gdk/gdkkeysyms.h>
     
    #define NB_ENTRY 2
     
    gboolean key_press (GtkWidget *widget, GdkEventKey *event, gpointer user_data)
    {
      if (event->keyval == GDK_Return)
      {
        gtk_widget_grab_focus (user_data);
      }
      return TRUE;
    }
     
    int main (int argc, char **argv)
    {
      gint i;
      GtkWidget *window = NULL;
      GtkWidget *vbox = NULL;
      GtkWidget *entry_group[NB_ENTRY] = { NULL };
     
      gtk_init (&argc, &argv);
     
      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
      g_signal_connect (G_OBJECT(window), "destroy", gtk_main_quit, NULL);
     
      vbox = gtk_vbox_new (TRUE, 0);
      gtk_container_add (GTK_CONTAINER (window), vbox);
     
      for (i = 0; i < NB_ENTRY; i++)
      {
        entry_group[i] = gtk_entry_new ();
        gtk_box_pack_start (GTK_BOX (vbox), entry_group[i], TRUE, TRUE, 0);
      }
     
      for (i = 0; i < NB_ENTRY; i++)
      {
        g_signal_connect
        (
          G_OBJECT(entry_group[i]),
          "key-release-event",
          G_CALLBACK (key_press),
          entry_group[(i+1)%NB_ENTRY]
        );
      }
     
      gtk_widget_show_all (window);
      gtk_main ();
      return 0;
    }
    En fait il faut utiliser le signal key-release-event pour savoir quand une touche est pressée et modifier le focus quand il s'agit de la touche entrée

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 101
    Par défaut
    gege2061:
    pourrait tu me donnée des explications sur ton code, je ni comprend pas grand chose.

    user_data est egal à quoi

    merci quand même

    ps: j'ai essayé mais rien

Discussions similaires

  1. requete avec OBCD et visual c++
    Par Anonymous dans le forum MFC
    Réponses: 12
    Dernier message: 18/11/2004, 16h15
  2. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. [Kylix] Runtime error 230 avec INDY
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 23/03/2002, 11h51
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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