sleep() im tkinter-Fenster Ich hätte gerne das in "Test_2.py" im Prinzip das gleiche passiert wie in "Test_1.py". Eine Sekunde Pause zwischen jeder Textzeile und Scrolling wenn das Fenster voll ist. Also das der Text oben verschwindet wenn unten neuer Text dazu kommt. Im tkinter-Fenster geht es nicht weiter wenn das Fenster voll ist.
von N. M. schrieb:
>Scrollbars?
Ob Scrollbar das Problem löst?
Ich habe versucht eine Scrollbar zu Programmieren,
ist mir leider noch nicht gelungen.
Auf Youtube habe ich ein Beispiel gefunden, daß
leider auch nicht funktioniert.
In Zeile 14 ist ein Fehler.
Du rufst ja alle zettel.insert schon vor der mainloop auf. Kannst du da überhaupt das sekündliche Fortschreiten der Ausgabe mitverfolgen? Zur Frage mit dem Scrollen: Du kannst den Text nach jeder Ausgabezeile mit zettel.see("end") automatisch ans Ende scrollen lassen. Wenn du tkinter.scrolledtext.ScrolledText anstelle von tkinter.Text verwendest, erscheint ein Scrollbar neben dem Textfeld.
Alleine mit: >mit "zettel.see("end")" automatisch ans Ende scrollen lassen. ohne "tkinter.scrolledtext.ScrolledText" hat funktioniert. Vielen Dank. Mit "tkinter.scrolledtext.ScrolledText" kommt eine Fehlermeldung: "module 'tkinter' has no attribute 'scrolledtext'" >Du rufst ja alle zettel.insert schon vor der mainloop auf. Kannst du da >überhaupt das sekündliche Fortschreiten der Ausgabe mitverfolgen? Also wenn ich das richtig verstanden habe kann man doch außerhalb der mainloop überhaupt nichts programmieren, weil daß ja nie erreicht wird. Es muß sich doch alles was man jetzt sonst noch dazu programmiert, innerhalb der mainloop befinden. Richtig? Die Idee mit sleep() war ja, ich wollte das Programm verlangsamen, um zu beobachten was da passiert. Wenn das nun nicht geht ist jetzt auch egal.
Günter L. schrieb: > Mit "tkinter.scrolledtext.ScrolledText" kommt eine Fehlermeldung: > "module 'tkinter' has no attribute 'scrolledtext'" Du brauchst dann noch ein
1 | import tkinter.scrolledtext |
Günter L. schrieb: > Die Idee mit sleep() war ja, ich wollte das Programm > verlangsamen, um zu beobachten was da passiert. > Wenn das nun nicht geht ist jetzt auch egal. Es geht schon, nur muss man die Sache dann etwas anders aufziehen (s. Anhang). Das erste Mal wird add_text schon vor der mainloop aufgerufen. Damit ist das Textfeld schon einmal mit der ersten Zeile befüllt. Danach wird – während die mainloop schon läuft und das Fenster offen ist – add_text jeweils verzögert um 1 Sekunde 28 weitere Male aufgerufen,
Günter L. schrieb: > Test_3.py habe ich getestet, funktioniert prima, > Vielen Dank. Tkinter / Tix ist eventbasierte Software, hat also technisch betrachtet eine? Genau, eine Eventloop. Deswegen ist time.sleep() oder Ähnliches da STRENGSTENS VERBOTEN und ein guter Grund für eine fristlose Kündigung.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.