Partage
  • Partager sur Facebook
  • Partager sur Twitter

erreure set_text glade

    4 mars 2011 à 18:30:46

    Bonjour,
    Tout est dans le titre ^^
    Je suis en train de faire un petit script qui compresse des fichiers.
    Voici la source :
    Code python :

    #!/usr/bin/python
    import pygtk
    pygtk.require("2.0")
    import gtk
    
    class compression:
        def __init__(self):
            interface = gtk.Builder()
            interface.add_from_file('compress.glade')
            self.label1 = interface.get_object("mylabel")
            interface.connect_signals(self)
    
        def on_dialog1_destroy(self, widget):
    	gtk.main_quit()
    
        def on_button1_clicked(self, widget):
    	self.label1.set_text("Compression en cours...")
        
        def on_button2_clicked(self, widget):
    	gtk.main_quit()
    
    if __name__ == "__main__":
    	compression()
    	gtk.main()
    

    Et le code glade :
    <?xml version="1.0" encoding="UTF-8"?>
    <interface>
      <requires lib="gtk+" version="2.16"/>
      <!-- interface-naming-policy project-wide -->
      <object class="GtkDialog" id="dialog1">
        <property name="visible">True</property>
        <property name="border_width">5</property>
        <property name="title" translatable="yes">Compression</property>
        <property name="resizable">False</property>
        <property name="window_position">center</property>
        <property name="type_hint">dialog</property>
        <signal name="destroy" handler="on_dialog1_destroy"/>
        <child internal-child="vbox">
          <object class="GtkVBox" id="dialog-vbox1">
            <property name="visible">True</property>
            <property name="spacing">2</property>
            <child>
              <object class="GtkLabel" id="label1">
                <property name="visible">True</property>
                <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_PROXIMITY_IN_MASK | GDK_PROXIMITY_OUT_MASK | GDK_SUBSTRUCTURE_MASK | GDK_SCROLL_MASK</property>
                <property name="label" translatable="yes">Veuillez mettre les fichiers à compresser
    dans un dossier 'compress' sur le Bureau
    puis cliquer sur Créer pour les compresser.</property>
                <property name="justify">center</property>
                <property name="selectable">True</property>
              </object>
              <packing>
                <property name="position">1</property>
              </packing>
            </child>
            <child internal-child="action_area">
              <object class="GtkHButtonBox" id="dialog-action_area1">
                <property name="visible">True</property>
                <property name="layout_style">spread</property>
                <child>
                  <object class="GtkButton" id="button1">
                    <property name="label" translatable="yes">Créer</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">True</property>
                    <signal name="clicked" handler="on_button1_clicked"/>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">False</property>
                    <property name="position">0</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkButton" id="button2">
                    <property name="label" translatable="yes">Annuler</property>
                    <property name="visible">True</property>
                    <property name="can_focus">True</property>
                    <property name="receives_default">True</property>
                    <signal name="clicked" handler="on_button2_clicked"/>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">False</property>
                    <property name="position">1</property>
                  </packing>
                </child>
              </object>
              <packing>
                <property name="expand">False</property>
                <property name="pack_type">end</property>
                <property name="position">0</property>
              </packing>
            </child>
          </object>
        </child>
        <action-widgets>
          <action-widget response="0">button1</action-widget>
          <action-widget response="0">button2</action-widget>
        </action-widgets>
      </object>
    </interface>


    Comme vous le voyez il n'est pas terminé du tout ^^ Je voulais tester :D
    Donc, quand je lance mon programme, le bouton Annuler marche, le destroy marche. Bref, ya que le bouton créer qui ne marche pas. Quand je lance en console, il me met :
    File "./compress.py", line 17, in on_button1_clicked
        self.label1.set_text("Compression en cours...")
    AttributeError: 'NoneType' object has no attribute 'set_text'

    Voila. Je ne sais pas quoi faire.
    Merci de m'aider rapidement ;)
    • Partager sur Facebook
    • Partager sur Twitter
      11 mars 2011 à 23:41:55

      Salut je ne connasi rien à glade mais
      a l'affichage, le bouton s'affiche-t-il bien?
      tu peux tester si print self.label1 affiche quelque chose?
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        12 mars 2011 à 9:21:14

        Je dirais qu'il manque un self.label1.connect("clicked", self.on_button1_clicked()) quelquepart (ligne 11 par exemple), mais je ne m'y connais pas en glade non plus.
        • Partager sur Facebook
        • Partager sur Twitter

        erreure set_text glade

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown