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 :

signal_button_press_event et signal_button_release_event sont-ils liés?


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2004
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 187
    Par défaut signal_button_press_event et signal_button_release_event sont-ils liés?
    Bonjour,
    J'ai plusieurs Eventbox dans une Gtk:: Window et j'aimerais pouvoir capter un "signal_button_press_event" sur un widget et "signal_button_release_event" sur un autre. Jusqu'à présent je n'y suis pas parvenue.: C'est toujours le premier widget qui reçoit le release alors que la souris n'est pas sur lui.
    Ces deux signaux sont-ils liés "entre eux"?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 176
    Par défaut
    Hello,

    je pense que lorsque tu a cliqué sur un widget, le bouton de la souris est enfoncé et le signal est bien capté. Mais ensuite il semble que jusqu'à ce que tu relache le bouton, peu importe ou se trouve ta souris (même en dehors de la fenetre tu peux essayer je pense) , ce soit toujours le même widget qui va capter le signal.

    Je dirais donc que oui, à partir du moment ou tu as cliqué, les signaux sont liés au même widget (mais à confirmer je n'en suis pas certain).

    Une solution possible à laquelle je pense serait la suivante:

    - tu regroupes tout tes widgets dans une seule EventBox
    - tu garde les mêmes signaux "signal_button_press_event" et "signal_button_release_event" sur cet EventBox
    - sur chaque widget, tu rajoutes le signal permettant de savoir si la souris a le focus dessus ou non :

    A cet évènementt, tu associes une fonction dans laquelle tu va modifier une variable te permettant de savoir quel widget à le focus.

    - Enfin, lorsque le signal button_press_event sera capté, tu pourra ainsi lire ta variable contenant le widget actif et pareil lorsque button_release_event sera capté, tu pourra savoir où la souris a été relachée.


    Voilà ce que je ferai (il existe peut-etre bien plus simple mais mes connaissances s'arretent là lol).
    Bonne journée.

  3. #3
    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,

    Comme marqué dans la doc, le signal est envoyé au widget qui possède le focus (The "button-press-event" signal), quand tu clique sur le bouton, il obtient le focus.

    Tu peux peut être tricher en changeant le focus en utilisant lors du signal enter-notify-event.

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2004
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 187
    Par défaut

    Je viens juste de lire vos réponses (j'étais absent). J'ai également lu un ancien sujet du forum pour un problème similaire au mien dans lequel "drag and drop" a été utilisé comme solution.

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

Discussions similaires

  1. Réponses: 26
    Dernier message: 11/08/2013, 19h27
  2. Réponses: 3
    Dernier message: 15/01/2006, 18h44
  3. [Newbie] Ces livres sont-ils corrects ?
    Par Metzgermeister dans le forum C++
    Réponses: 7
    Dernier message: 04/12/2005, 15h10
  4. [TClientSocket] Pourquoi sont-ils dépréciés ?
    Par Keke des Iles dans le forum Composants VCL
    Réponses: 4
    Dernier message: 06/01/2005, 15h47
  5. Réponses: 4
    Dernier message: 09/11/2004, 22h38

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