| 12
 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 | 
Partager