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 :

pb mise a jour gtktextview


Sujet :

GTK+ avec Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 20
    Par défaut pb mise a jour gtktextview
    Bonjour,

    je n'arrive pas à rajouter du texte a mon gtktextview
    Le message de la variable welcome s'affiche correctement mais le rajout du texte de la variable info ne fonctionne pas.

    message d'erreur quand je clique sur le bouton ->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    buf = interface.get_object("textview").get_buffer()
    NameError: global name 'interface' is not defined
    ci-dessus le code que j'utilise :
    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
     
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import sys
    import os
    import gtk
     
     
    # un petit message à propos de la license du script :)
    welcome = '''toto version 1.0, Copyright (C) 2010'''
     
    # message d'info
    info = '''Message de test pour le rajout'''
     
     
     
     
     
    #class qui permet l'affichage et l'interaction avec l'interface graphique sous glade
    class affichage:
     
        # fermeture de la fenetre
        def on_mainWindow_destroy(self, widget):
    	gtk.main_quit()
     
     
        # au clic sur le bouton nouveau->nouveau mise a jour du texte
        def on_imagemenuitem_new_activate(self, widget):
    	buf = interface.get_object("textview").get_buffer()
        	end_iter = buf.get_end_iter()
        	buf.insert(end_iter, info)
     
     
     
     
     
     
     
     
     
     
     
        def __init__(self):
     
     
     
            interface = gtk.Builder()
            interface.add_from_file("projet.glade") 
     
     
            # get the widgets which will be referenced in callbacks
            self.window = interface.get_object("window1")
           	self.textview = interface.get_object("textview").set_sensitive(False) # Pour eviter de le modifier
            self.buf = interface.get_object("textview").get_buffer()
        	self.buf.set_text(welcome)
     
     
            # connect signals
            interface.connect_signals(self)   
     
     
     
     
    if __name__ == "__main__":
        affichage()
        gtk.main()

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Il faut vraiment supprimer ce message ? Tu as réussi à résoudre ton pb ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 327
    Par défaut
    Bonjour,

    C'est vrai que s'est un petit peu nul comme soucie, mais il n'y a pas de questions betes...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    buf = interface.get_object("textview").get_buffer()
    NameError: global name 'interface' is not defined
    Traduction du mesages d'erreur : 'interface' n'est pas définie.

    Cela veut dire qu'il ne sait pas c'est quoi interface, et il faut lui indiquer...
    Vous allez me dire que vous l'avez définit dans le "__init__" mais il faut savoir que dans les class les variables ne sont pas concervés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def __init__(self):
            interface = gtk.Builder()
    La variable 'interface' ne sera disponible que pour la focntion "__init__", apres elle sera libéré (avantage de python de libéré la mémoire automatique).

    Toutefois, on peut demander à concerver cette variable, avec un "self" (voila donc a quoi il sert ce self dans les arguments de la fonction).

    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
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import sys
    import os
    import gtk
     
    # un petit message à propos de la license du script :)
    welcome = '''toto version 1.0, Copyright (C) 2010'''
     
    # message d'info
    info = '''Message de test pour le rajout'''
     
    #class qui permet l'affichage et l'interaction avec l'interface graphique sous glade
    class affichage:
     
        # fermeture de la fenetre
        def on_mainWindow_destroy(self, widget):
    	gtk.main_quit()
     
        # au clic sur le bouton nouveau->nouveau mise a jour du texte
        def on_imagemenuitem_new_activate(self, widget):
    	buf = self.interface.get_object("textview").get_buffer()
        	end_iter = buf.get_end_iter()
        	buf.insert(end_iter, info)
     
        def __init__(self):
            self.interface = gtk.Builder()
            self.interface.add_from_file("projet.glade") 
     
     
            # get the widgets which will be referenced in callbacks
            self.window = self.interface.get_object("window1")
           	self.textview = self.interface.get_object("textview").set_sensitive(False) # Pour eviter de le modifier
            buf = self.interface.get_object("textview").get_buffer()
        	buf.set_text(welcome)
     
     
            # connect signals
            self.interface.connect_signals(self)  
     
    if __name__ == "__main__":
        affichage()
        gtk.main()
    Et voili

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

Discussions similaires

  1. Mises à jour des paquetages en mode console
    Par Memnoch31 dans le forum Debian
    Réponses: 6
    Dernier message: 16/05/2004, 16h30
  2. problème de mise a jour
    Par leeloo076 dans le forum ASP
    Réponses: 3
    Dernier message: 15/04/2004, 16h09
  3. Mise a jour mandrake linux 9.2
    Par Otacan dans le forum Mandriva / Mageia
    Réponses: 2
    Dernier message: 02/04/2004, 22h47
  4. [] [Install] Problème de mise à jour des dll
    Par pepper dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 23/01/2003, 22h34
  5. Visualisation des mise à jour en réseau
    Par fandor7 dans le forum Paradox
    Réponses: 2
    Dernier message: 06/12/2002, 15h54

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