Пробую tkinter в первый раз. В приведенном ниже коде есть 4 оператора print#. Тут два вопроса -
1) - При выполнении я ожидал, что поток кода будет таким же, как операторы print #, но кажется, что поток другой. Сначала я вижу print2,3, а затем print1. почему это так ?
2)- Только print1 и 4 имеют значение переменной u_input (или e1.get). Почему print2,3 не показывают одно и то же значение? .. это, вероятно, та же причина, что и поток кода.
from tkinter import *
w = Tk()
w.title(" Main Window")
w.geometry('800x800')
def test ():
ux = u_input.get()
print("print1 : " , ux )
u_input = StringVar()
e1 = Entry(w , textvariable = u_input )
e1.grid(row=0,column=1, padx = 300 , pady= 20 )
b1 = Button(w, text ="button1", width = 12 , justify = "center", command = test )
b1.grid(row=10,column=1 , padx= 300 , pady= 40)
print("print 2 : ", str(u_input.get()))
print("print 3 : ", str(e1.get()))
w.mainloop()
User_Entry = str(u_input.get())
print("print 4 ", User_Entry)
===============================
сравнивая приведенный выше код с приведенным ниже - этот печатает в порядке вызова функций.
a= 1
b= 2
def func2 ():
a=100
b=200
print("print3 :", a+b)
def func1 ():
a=10
b=20
print("print1 :",a+b)
func1()
print("print2 :", a+b)
func2()
testдолжен выполняться до того, как будут достигнуты другие вызовы печати? - person Karl Knechtel   schedule 07.09.2020printтеперь функция. - person Karl Knechtel   schedule 07.09.2020Button()не ждет вашего щелчка - он только сообщаетmainloop()какой виджет отображать в окне - иmainloop()запускает программу и окно отображения. Итак,"print 2""print 3"выполняется до того, какmainloop()покажет окно - и до того, как вы нажмете кнопку, которая запускает код с"print 1"- person furas   schedule 07.09.2020