bonjour

J'ai une question surement très classique. Bon j'avoue que j'ai un trou de mémoire et n'est pas trouvé bonheur chez moteur goo....

il y a t-il un moyen de valider par la frappe touche ENTER sur un gtk.Dialog en complément de l'appui de la touche "validez" qui je trouve n'ai pas 100% ergonomique en frappe rapide où on a l'habitude de taper ENTER pour valider une saisie et un passage au paramètre suivant.

quel serait le connect à activer dans ce cas ?
Je trouve que la doc des connecteurs n'est suffisamment limpide entre action concrète et la constante associée
ci-dessous un exemple où la touche enter est inactive


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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/usr/bin/env python
# -*- coding: ISO-8859-1 -*-
import sys
import time
try:
    import pygtk
    pygtk.require("2.0")
except:
    pass
try:
    import gtk
    import gobject
    import string
except:
    sys.exit(1)
class dialogue():
 
    def settitre(self, champsaisie,evenement):
        self.Titre=champsaisie.get_text() #  la bonne méthode ?????
        #print "Contenu du champ de saisie : %s\n" % self.Titre
        print "Contenu du champ de saisie : %s" % self.Titre
 
    def validation(self,evenement):
        self.result = gtk.RESPONSE_OK
        print "action en cours"
 
    def __init__(self,texteAsaisir,phrasesaisie,fenetreparent=None,complement=None): 
 
        self.fenetreparent=fenetreparent
        self.texteAsaisir=texteAsaisir
        self.phrasesaisie=phrasesaisie
        self.Titre=""
        self.complement_ici=complement # complément d'affichage dans la fenêtre un texte très long une liste etc...
 
    def run(self):
        #++++++++++++++++++++++++++++++++
        # Creation de la boite de dialogue
        # 1 bouton Valider
        # 1 bouton Annuler
        #++++++++++++++++++++++++++++++++
        BoiteNote = gtk.Dialog(self.texteAsaisir, self.fenetreparent,
            gtk.DIALOG_MODAL,
            (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,gtk.STOCK_OK, gtk.RESPONSE_OK))
 
        #étage création du bandeau supérieur
        self.boite_bandeau_haut = gtk.HBox(False,1)
 
        #titre de la fiche
        etiquettetitre = gtk.Label(self.phrasesaisie)
        self.boite_bandeau_haut.pack_start(etiquettetitre, False, False, 0)
        champsaisie = gtk.Entry()
        champsaisie.set_width_chars(60) # def le largeur de boite
        champsaisie.set_editable(True)
        #La méthode qui suit permet de définir une partie du texte comme sélectionnée, 
        #de start (début) à end (fin). Cette option est principalement utilisée dans les cas 
        #où l'on fixe un texte par défaut pour le champ de saisie et que l'on souhaite que 
        #l'utilisateur puisse le supprimer facilement.
        champsaisie.connect("event", self.settitre)  # <------------------ pas BUG ?????
 
        self.boite_bandeau_haut.pack_start(champsaisie, False, False, 0)
 
        #ajout de l'horizontal box dans la vertical box
        # dessous j'ai mis False au lieu de True pour que la boîte ne s'étende pas automatiquement
        if self.complement_ici!=None:
            #ajout de texte complémentaire pour aide à la saisie
            for element in self.complement_ici:
                etiquettetitre = gtk.Label(element)
                BoiteNote.vbox.pack_start(etiquettetitre, False, True, 0)
                #print "coucou"
 
        champsaisie.connect("activate",self.validation)# pour connecteur de la touche entrée pour valider la saisie par touche entrée
 
        # la dernière ligne c'est pour la saisie
        BoiteNote.vbox.pack_start(self.boite_bandeau_haut, False, True, 0)
 
        # Affichage des elements de la boite de dialogue
        BoiteNote.vbox.show_all()
 
        # On lance la boite de dialogue et on recupere la reponse
        self.result = BoiteNote.run()
 
        if self.result == gtk.RESPONSE_OK:
            # L'utilisateur valide
            print" ==============> validation OK"
        else:
            # L'utilisateur annule (soit gtk.RESPONSE_CANCEL, soit gtk.RESPONSE_NONE)
            print" ==============> annulation saisie"
 
        # Destruction de la boite de dialogue
        BoiteNote.destroy()
 
        return self.result, self.Titre
 
 
if __name__ == "__main__":
    # essai 1
 
    test=dialogue("texteAsaisir","phrasesaisie")
 
    result, valdate =test.run()
    if (result == gtk.RESPONSE_OK):
        print "recuperation de la donnéees  %s " %valdate
Merci d'avance pour un éclairaige sur les connecteurs