bei meinem ersten tkinter-Projekt habe ich gleich eine Verständnisfrage zum Ablauf des Codes.
Ziel des kleinen CodeAusschnitts wäre es, dass nach der Erstellung (und Anzeige) der zweiten Toplevel-Fensters die Funktion NextFunction() ausgeführt wird.
Was ist die Ursache dafür, dass die Anzeige des zweiten Toplevel-Fensters mit pack() erst am Ende nach dem Warten mit time.sleep(10) durch NextFunction() erfolgt?
Der Pack()-Befehl steht doch in der "neuesFenster"-Funktion im Ablauf eindeutig vor dem Aufruf NextFunction()...
Code: Alles auswählen
import tkinter as tk
import time
import random
tkFenster = tk.Tk()
nameFenster=tkFenster
Counter =0
def NextFunction():
print("Now waiting 10")
time.sleep(10)
def neuesFenster():
neuesToplevelFenster = tk.Toplevel(tkFenster)
neuesToplevelFenster.geometry('%dx%d+%d+%d' % (75, 75, random.randrange(0, 200), random.randrange(0, 200)))
button = tk.Button(neuesToplevelFenster, text="Beispiel")
button.pack()
print("Code bei Pack vorbei")
global Counter
Counter += 1
if Counter == 2:
NextFunction()
tkFenster.title('Hauptfenster')
tkFenster.geometry('600x480')
buttonNeu = tk.Button(master=tkFenster, command=neuesFenster)
buttonNeu.place(x=10, y=10, width=75, height=75)
tkFenster.mainloop()
Grüße, LuAnd