Seite 1 von 1

refreshing einer box/entry

Verfasst: Dienstag 27. Februar 2007, 19:54
von plankton
Erzeuge wie folgt 10 Entries in einer box

Code: Alles auswählen


def init_data1(self):
        self.data1 =  gtk.VBox(False, 0)
        for i in range(10):
            self.text1 = gtk.Entry()
            self.text1.label(str(i))
            self.text1.set_editable(False)
            self.data1.pack_start(self.text1, True, True, 0)
            self.text1.set_text(CHANNEL[i][6])
            self.text1.show()
            self.data1.show()
        self.table.attach(self.data1,1,2,0,1)

Ich starte eine thread in der immer wieder aus einem Messgerät 10 strings ausgelesen werden. Diese Strings welche sich in dem array CHANNEL[6] befinden sollen nun nach jedem durchlauf in den entries neu angezeigt werden. Meine idee war ich refreshe einfach die box/entries ohne sie jedesmal neu erzeugen zu müssen doch das habe ich irgendwie nicht hinbekommen. Vielleicht kann mir einer helfen wie ich dies bewerkstelligen kann.

DANKE[/code]

Verfasst: Dienstag 27. Februar 2007, 19:57
von Leonidas
Hallo plankton, willkommen im Forum,

Vorschlag:
``self.text1 = gtk.Entry()`` zu ``text = gtk.Entry()`` machen und am schluss dieses Entry in eine Liste abspeichern. Dann kannst du später durch die ganzen Entries iterieren und mit ``set_text()`` aktualisieren.

P.S.: Dein Code ist falsch eingerückt, aber das kann auch ein Fehler ala Copy&Paste sein.

Verfasst: Dienstag 27. Februar 2007, 20:09
von plankton
danke für die schnelle hilfe. So was hatte ich auch schon ausprobiert da ich aber erst seit 5 tagen in python programmiere habe ich das leider nicht hinbekommen . wie trage ich die entries in eine liste ein? (wahrscheinlich eine sau dumme frage)

Verfasst: Dienstag 27. Februar 2007, 22:53
von Leonidas
Etwa so:

Code: Alles auswählen

def init_data1(self):
    self.data1 =  gtk.VBox(False, 0)
    self.entry_widgets = []
    for i in range(10):
        text = gtk.Entry()
        text.label(str(i))
        text.set_editable(False)
        self.data1.pack_start(text, True, True, 0)
        text.set_text(CHANNEL[i][6])
        text.show()
        self.data1.show()
        self.entry_widgets.append(text)
    self.table.attach(self.data1,1,2,0,1)

Verfasst: Mittwoch 28. Februar 2007, 15:18
von plankton
vielen dank funzt super