Seite 1 von 1

Ausgabe in Text-Widget

Verfasst: Dienstag 2. Mai 2006, 14:39
von z1936z
Ich will in meinem Programm im Texteditor Zeile für Zeile Text ausgeben, damit der Benutzer sieht, dass das Programm läuft.

Das Beispiel dafür währe:

Code: Alles auswählen

from Tkinter import *
class MainWindow:
    def __init__ (self):
        self.fenster = Tk()
        self.fenster.columnconfigure(0, weight=1) 
        self.fenster.rowconfigure(0, weight=1) 
        self.text = Text(self.fenster, width=40, height=40) 
        self.text.grid(row=0, column=0, sticky="nesw") 
        self.verticalScroller = Scrollbar(self.fenster, orient="vertical") 
        self.verticalScroller.grid(row=0, column=1, sticky="ns") 
        self.text['yscrollcommand'] = self.verticalScroller.set 
        self.verticalScroller['command'] = self.text.yview
        self.bt_sys = Button(self.fenster, text="Zahlen", command=self.zahlen).grid()
        self.fenster.mainloop()

    def zahlen(self):
        for j in range(1,300):
            self.text.insert(INSERT , str(j) + '\n')
            print j
mw = MainWindow() 

Aber so funktioniert nicht! Die for-Schleife läuft bis Ende und nur dann wird der Text ausgegeben. Mein Wunsch ist die Ausgabe, wie in der Zeile 19.

Könnte mir jemand helfen?
Danke im Voraus!

Verfasst: Dienstag 2. Mai 2006, 16:05
von Mawilo
Hallo,

ich habe zwar nicht so ganz verstanden, was du machen möchtest, aber um den Text zeilenweise auszugeben, kannst du das auch so machen:

Code: Alles auswählen

def zahlen(self): 
        text = self.text.get(1.0,END).split('\n')
        z = 1
        for i in text:
            print z,i
            z += 1
            time.sleep(1)
Stephan

Verfasst: Dienstag 2. Mai 2006, 16:50
von Redprince
Moinsen...
Versuch es mal mit einem self.fenster.update() nach dem self.text.insert().

Verfasst: Dienstag 2. Mai 2006, 19:48
von z1936z
Danke für eure Hilfe, mit update() funktioniert hervorragend.

Gruß!!!