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

Python Discussion :

connaitre l'adresse de l'objet event


Sujet :

Python

  1. #1
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut connaitre l'adresse de l'objet event
    Bonjour,
    Je suis confronté à un problème avec mon interface graphique via pygtk, mais ma question est peut être plus général, c'est pour cela que je la mets sur ce forum qui a une audience plus large. Dans le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    self.frame.connect("scroll-event", self.scrollevent,self.adjustment)
    ...
    def scrollevent(self,window,event,adjustment):
    		print "event = ",event
    L'exécution me donne la valeur de l'event :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    event     = <gtk.gdk.Event at 0xb64bc458: GDK_SCROLL x=151.00, y=29.00, direction=GDK_SCROLL_DOWN>
    Je voudrais savoir si il est possible de connaitre l'adresse de l'event (le gtk.gdk.Event at 0xb64bc458) au moment du "self.frame.connect" ? Si oui comment la récupérer ?
    Merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 715
    Par défaut
    Salut,

    La fonction "id" de CPython est codée pour retourner "l'adresse" de l'objet.
    Le "0xb64bc458" devrait être récupérable via "hex(id(event))".
    Vous voulez en faire quoi?
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    J'ai une fenêtre composée de plusieurs frames. Le pointeur souris étant dans une frame, le scroll ne doit concerner que cette frame. Le scroll sur une frame appelle la callback prévue à cette effet : "scrollevent", mais aussi le "scrollevent" des autres frames, donc le scroll est aussi appliqué sur ces autres frames, je n'ai pas trouvé pourquoi. Mon IHM est plutôt complexe car générique.
    Mon idée est de pouvoir faire un lien entre l'event récupéré par la callback et la frame qui l'a déclenchée et ainsi élimineer le traitement sur les autres frames.
    Mais je comprend dans votre réponse qu'on accède à l'event une fois qui'il s'est déclenché, donc dans la callback, c'est alors trop tard pour moi.
    Une autre solution : comme l'event me donne le x et y de la position du curseur, je peux peut être la comparer avec la zone de la frame et en déduire la frame concernée. je vais essayer.
    Merci

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 715
    Par défaut
    Salut,
    Normalement, le widget qui a le focus récupère l'event en premier et çà se propage si le handler ne retourne pas True.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    Bravo, il suffisait de rajouter à ma callback.pour qu'il n'y ait pas de cascade
    J'ai cherché lontemps.

    Sinon, au sujet du focus, dans le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    self.frame.connect("scroll-event", self.scrollevent,self.adjustment,self.frame)
    ...
    def scrollevent(self,window,event,adjustment,frame):
    		print "Focus = ",frame.has_focus(),frame.is_focus()
    Pourquoi avais je : J'aurais attendu au moins un True !
    Merci

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 715
    Par défaut
    Salut,

    "focus" redirige les events clavier vers le widget qui l'a obtenu ou récupéré via grab.

    Positionner la souris sur un widget va lui expédier des events "souris" mais le widget (sous la souris) ne récupérera pas toujours le focus "automatiquement"(*): une frame n'étant qu'un container ne le récupère pas, un text widget devrait le récupérer.
    (*) except via un setting "focus follow mouse" qui est assez "désorientant".
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    ok,
    Merci

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 14/01/2006, 10h36
  2. [Débutant - JAVASCRIPT] L'objet event et l'objet xEvent
    Par sempire dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/11/2005, 15h33
  3. Connaitre l'ID d'un objet
    Par srvremi dans le forum MFC
    Réponses: 1
    Dernier message: 07/11/2005, 23h37
  4. connaitre les adresses IP des contacts sur msn
    Par starway dans le forum Messagerie instantanée
    Réponses: 6
    Dernier message: 28/10/2005, 20h39
  5. Connaitre l'adresse IP du serveur
    Par SEMPERE Benjamin dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 23/07/2005, 15h24

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