Ausgabe in Text-Widget

Fragen zu Tkinter.
z1936z
User
Beiträge: 11
Registriert: Freitag 21. April 2006, 14:53

Ausgabe in Text-Widget

Beitragvon z1936z » Dienstag 2. Mai 2006, 14:39

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!
Benutzeravatar
Mawilo
User
Beiträge: 446
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Beitragvon Mawilo » Dienstag 2. Mai 2006, 16:05

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
Redprince
User
Beiträge: 128
Registriert: Freitag 22. Oktober 2004, 09:22
Wohnort: Salzgitter
Kontaktdaten:

Beitragvon Redprince » Dienstag 2. Mai 2006, 16:50

Moinsen...
Versuch es mal mit einem self.fenster.update() nach dem self.text.insert().
Zuletzt geändert von Redprince am Dienstag 2. Mai 2006, 20:14, insgesamt 1-mal geändert.
z1936z
User
Beiträge: 11
Registriert: Freitag 21. April 2006, 14:53

Beitragvon z1936z » Dienstag 2. Mai 2006, 19:48

Danke für eure Hilfe, mit update() funktioniert hervorragend.

Gruß!!!

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder