Seite 1 von 1

tkinter - Leerlaufzeit benutzen (für andere Zwecke)

Verfasst: Dienstag 30. Juli 2019, 18:51
von msmn
versuche TKinter weiter zu lernen/verinnerlichen/verwenden....

kann man (bzw wie ginge das bitte) innerhalb/während dem "Leerlauf/Wartezeitraum" der mainloop-TKinter-Schleife (insbesondere während zB User-Aktion gemacht wird, also keine Taste/Button gedrückt wird, etc) ...bitte andere Aktionen ablaufen lassen (also Aktionen, welche eigentlich nicht aufgrund einer TKinter-Eingabe gestartet werden), also zB
import tkinter as tk
from functools import partial

def toggle(a):
print ("Button gedrueckt")

def test(b): # <-- so eine Funktion haette ich gerne "bei Leerlauf von root.mainloop" abgearbeitet
for i in range (100):
print(i)

root = tk.Tk()

button = tk.Button(root)
button.config(text=" Button ",command = partial(toggle,"Hallo"))
button.grid()

root.mainloop()
Anmerkung: wenn möglich, möchte ich jedoch "Threads/Threading" tunlichst vermeiden.

Danke für Eure Hilfe
msmn

Re: tkinter - Leerlaufzeit benutzen (für andere Zwecke)

Verfasst: Dienstag 30. Juli 2019, 19:17
von __deets__
Das geht per after-Methode, also einem Timer. Ggf zusammen mit https://github.com/fluentpython/asyncio-tkinter um es aus meiner Sicht schicker zu machen, weil du so viel einfacher die potentiell länger laufenden tasks mit einem simplen “await asyncio.sleep()” pausieren lassen kannst, so dass die GUI tut.

Re: tkinter - Leerlaufzeit benutzen (für andere Zwecke)

Verfasst: Dienstag 30. Juli 2019, 19:36
von msmn
danke...könntest Du mir bitte die entsprechenden "after"-Zeilen als Beispiel oben einbringen?
msmn

Re: tkinter - Leerlaufzeit benutzen (für andere Zwecke)

Verfasst: Dienstag 30. Juli 2019, 19:38
von __deets__
Dazu haben wir tonnenweise Beispiele hier im Forum, weil das eine absolute Standardfrage ist. Klick dich mal ein bisschen durch das tkinter unterforum.

Re: tkinter - Leerlaufzeit benutzen (für andere Zwecke)

Verfasst: Dienstag 30. Juli 2019, 20:39
von msmn
ok, danke