@raykhor

Как запустить функцию из функции?

В программе создается окно,в котором при нажатии кнопки вылезает дочернее окно("Чертов тест"),в дочернем окне ,при нажатии кнопки должна выполниться функция qu1,но переменные из def qu1 not defined.
def prwork():
	sub = tk.Toplevel(root)
	sub.transient(root)
	sub.title('Чертов тест')
	sub.geometry("300x400")

	sublabel = Label(sub, text="Cколько будет 1+1", font=("Arial", 10))
	sublabel.place(x=1, y=1)

	sublabel2 = Label(sub, text="", font=("Arial", 10))
	sublabel2.place(x=1, y=60)

	ent_1 = Entry(sub, width=10)
	ent_1.place(x=1, y=20)
	subbtn = Button(sub, text=" Назад ", width=4, command=quit)
	subbtn.place(x=250, y=200)

	subbtn2 = Button(sub, text=" ОК ", width=4, command=qu1)
	subbtn2.place(x=150, y=200)

	subbtn3 = Button(sub, text=" Далее ", width=4, command=quit)
	subbtn3.place(x=1, y=200)

def qu1():
 a = ent_1.get()
 x = (float(a))
 y = str(x)
 if float(x) == 1:
  sublabel2["text"] = ("Ваш вес идеален")
 elif float(x) == 2:
  sublabel2["text"] = ("Вам нужно набрать" + y + " кг")
 elif float(x) == 3:
  sublabel2["text"] = ("Вам нужно сбросить" + y + " кг")
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 2
nomorehero
@nomorehero
Объяви переменные в скобках, типа qu1(per1, per2), в объявлении функции и засовывай их в качестве аргумента. У них область видимости - функция. Вне их переменные не существуют.
Потом когда будешь юзать её, клади значения. qu1(14, 15) условно.
Ответ написан
@gromyko21
И в конце функции добавляй return если хочешь, чтобы она тебе что-то отдавала в вызывающую функцию.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы