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 :

GObject et action à la pression d'une touche


Sujet :

GTK+ avec C & C++

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Points : 3
    Points
    3
    Par défaut GObject et action à la pression d'une touche
    Bonjour.
    Je travaille actuellement sur le code source de Rhythmbox, mais pas sur celui du site officiel mais d'un autre dévellopeur. Ce dernier à rajouté un petite fonction pour que, lorsque l'utilisateur à selectionné une chanson et qu'il appuie sur la touche Suppr du clavier, cela supprime la chanson de la liste.

    Voila comment il à procédé :
    Dans void rb_shell_construct (RBShell *shell)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            g_signal_connect_object (G_OBJECT (win), "key-press-event",
                                     G_CALLBACK (delete_title),
                                     shell, 0);
    delete_title étant la fonction supprimant la musique de la liste apres avoir fait un test sur la touche du clavier.

    Or voila, du coup dé qu'on presse une touche, cette fonction est appelée. Alors lorsqu'on veut rentrer un nom dans la boite de texte "recherche" et bien ca ne marche pas puisque le programme appelle la fonction.

    Mon problème c'est que je débute completement en GTK & Co et je ne vois pas du tout comment résoudre ce problème. C'est pour cela je vous pose la question.
    Merci d'avance?

  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 : 41
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Bonjour,
    Citation Envoyé par MrArtichaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            g_signal_connect_object (G_OBJECT (win), "key-press-event",
                                     G_CALLBACK (delete_title),
                                     shell, 0);
    Je supose que win est la fenêtre principale du programme ? Si c'est le cas, tout appui sur une touche lorsque la fenêtre à le focus appelera cette fonction. Pour eviter cela, connecte le signal à un autre objet que la fenêtre. Je ne connais pas le logiciel mais tu parle d'une liste donc essaye de connecter le signal uniquement à la liste.

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Désolé d'avoir mit tant de temps à répondre : cette solution marche tres bien, j'ai restreind l'événement à la liste de lecture.

    En fait maintenant j'ai un autre problème. Je voudrais utiliser la touche Suppr ET la touche BackSpace. Or cette dernière ne marche pas.Je pense que c'est dut au fait que lorsqu'on appuie sur une lettre du clavier dans rhythmbox, une petite zone de saisie apparait en bas de l'écran pour éffectuer une recherche dans la liste. Le Backspace doit donc déclencher cette action (mais on ne le voit pas puisqu'il n'y a pas de texte dans zone de saisie donc elle disparait tout de suite).
    Je suis embêter car du coup, si j'arrive a récuperer la touche BackSpace pour la suppression il sera impossible d'éffacer dans la zone de saisie ensuite.

    Voila, en tout cas encore merci.

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bon ben apres avoir désactiver la recherche dans le TreeView il apparait que ce n'est pas ca qui bloquait l'utilisation de la touche Backspace.
    Donc je cherche encore.

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/09/2006, 20h35
  2. Réponses: 3
    Dernier message: 03/06/2006, 16h59
  3. [Forms 9] Detection de la pression d'une touche
    Par kervoaz dans le forum Forms
    Réponses: 3
    Dernier message: 24/04/2006, 10h02
  4. Simuler un e pression sur une touche du clavier
    Par Furius dans le forum VBScript
    Réponses: 13
    Dernier message: 11/12/2005, 17h53
  5. Simuler la pression d'une touche
    Par P4dre dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 09/08/2005, 16h31

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