refreshing einer box/entry

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
plankton
User
Beiträge: 4
Registriert: Freitag 23. Februar 2007, 13:12

Dienstag 27. Februar 2007, 19:54

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]
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 27. Februar 2007, 19:57

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
plankton
User
Beiträge: 4
Registriert: Freitag 23. Februar 2007, 13:12

Dienstag 27. Februar 2007, 20:09

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)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 27. Februar 2007, 22:53

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)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
plankton
User
Beiträge: 4
Registriert: Freitag 23. Februar 2007, 13:12

Mittwoch 28. Februar 2007, 15:18

vielen dank funzt super
Antworten