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 Python Discussion :

GtkEntry et valeur get_text non mise à jour


Sujet :

GTK+ avec Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 16
    Points : 9
    Points
    9
    Par défaut GtkEntry et valeur get_text non mise à jour
    Bonjour,

    voilà, je suis en train d'essayer de faire une boîte de dialogue avec un GtkEntry dedans. Dans mon programme, lorsque je clique sur Valider, je souhaite récupérer la valeur de l'Entry, mais la valeur retournée est celle par défaut et non celle modifiée manuellement avec le clavier.

    Ca fait un certain temps que je Google sans trouver pourquoi ça ne marche pas. J'ai l'impression que je suis sur un bug.

    J'aimerai savoir si ce bout de code est censé m'afficher le contenu de la boîte de saisie à un moment donné dans ma console. Je l'ai trouvé sur developpez.com donc il devrait être bon) :
    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
     
    #!/usr/bin/env python
     
    # exemple champsaisie.py
     
    import pygtk
    pygtk.require('2.0')
    import gtk
     
    class ExempleSaisieTexte:
        def fct_rappel_entree(self, widget, champsaisie):
            textesaisi = champsaisie.get_text()
            print "Contenu de la champ de saisie : %s\n" % textesaisi
     
        def champsaisie_editable(self, casecocher, champsaisie):
            champsaisie.set_editable(casecocher.get_active())
     
        def champsaisie_visible(self, casecocher, champsaisie):
            champsaisie.set_visibility(casecocher.get_active())
     
        def __init__(self):
            # Creation d'une nouvelle fenetre
            fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL)
            fenetre.set_size_request(200, 100)
            fenetre.set_title("Saisie de texte GTK")
            fenetre.connect("delete_event", gtk.main_quit)
     
            boite_v = gtk.VBox(False, 0)
            fenetre.add(boite_v)
            boite_v.show()
     
            champsaisie = gtk.Entry()
            champsaisie.set_max_length(50)
            champsaisie.connect("activate", self.fct_rappel_entree, champsaisie)
            champsaisie.set_text("salut")
            champsaisie.insert_text(" tout le monde", len(champsaisie.get_text()))
            champsaisie.select_region(0, len(champsaisie.get_text()))
            boite_v.pack_start(champsaisie, True, True, 0)
            champsaisie.show()
     
            boite_h = gtk.HBox(False, 0)
            boite_v.add(boite_h)
            boite_h.show()
     
            casecocher = gtk.CheckButton("Editable")
            boite_h.pack_start(casecocher, True, True, 0)
            casecocher.connect("toggled", self.champsaisie_editable, champsaisie)
            casecocher.set_active(True)
            casecocher.show()
     
            casecocher = gtk.CheckButton("Visible")
            boite_h.pack_start(casecocher, True, True, 0)
            casecocher.connect("toggled", self.champsaisie_visible, champsaisie)
            casecocher.set_active(True)
            casecocher.show()
     
            bouton = gtk.Button(stock=gtk.STOCK_CLOSE)
            bouton.connect_object("clicked", gtk.main_quit, fenetre)
            boite_v.pack_start(bouton, True, True, 0)
            bouton.set_flags(gtk.CAN_DEFAULT)
            bouton.grab_default()
            bouton.show()
            fenetre.show()
     
    def main():
        gtk.main()
        return 0
     
    if __name__ == "__main__":
        ExempleSaisieTexte()
        main()
    Merci d'avance pour votre aide.

  2. #2
    Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Pour que ça marche tu peux ajouter dans l'init avant le fenetre.show()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            valid = gtk.Button(stock=gtk.STOCK_APPLY)
            valid.connect_object("clicked", self.fct_rappel_entree, valid, champsaisie )
            boite_v.pack_start(valid, True, True, 0)
            valid.show()
    J'éspère que mon premier post ici sera le bienvenue :=)

    bon courage
    Maka

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    OUPS,

    Il y avait plus simple :-)

    Focus sur le gtk.Entry et clic entrer (j'avais pas vue le signal "activate")

    Bye

Discussions similaires

  1. [jsf] valeur inputText non mise à jour
    Par Pirion dans le forum JSF
    Réponses: 16
    Dernier message: 20/08/2009, 11h11
  2. Réponses: 7
    Dernier message: 15/01/2007, 18h18
  3. Valeur zone avant mise à jour
    Par gbrunelle dans le forum Access
    Réponses: 4
    Dernier message: 16/12/2006, 14h41
  4. Vue non mise à jour après modification d'une table
    Par cybernet35 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/01/2006, 13h54
  5. Valeur à la dernière mise à jour ?
    Par szdavid dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/09/2005, 08h40

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