@animanshnik

Как заставить функцию вернуть нужные аргументы, при ее вызове в button?

Написав некое подобие игры, я решил перенести ее в визуал через тинкерер. Посмотрев немного гайдов, понял что функция в кнопке вызывается через
btn = Button(window, text="kill", command=lambda: killhard(score,shoot,health,level))

Окей, все хорошо, но эта функция возвращает мне значения, которые нужны для дальнейшей работы, в обычном коде я их использовал вот так:
health, score = killhard(score, shoot, health, level)

Как можно вернуть эти значения при вызове btn?
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
FontSepten
@FontSepten
Любитель
Вы можете просто создать функцию и настроить кнопку на нее
def qw():
    global killhard(score, shoot, health, level), health, score
    health, score = killhard(score, shoot, health, level)
Button(window, text="kill", command=qw).place(x=0,y=0) # сюда координаты кнопки

Сделайте нужные переменные глобальными или используйте return (второй вариант лучше используйте если ваши переменные локальные, а так можете первый вариант использовать)
И дальше творите что хотите.
Также рекомендую кнопку не делать переменной, а использовать метод place. Им можно удобно написать сразу координаты кнопки и лишний раз не писать pack(). Ссылка на документацию https://younglinux.info/tkinter/place
Ответ написан
Ваш ответ на вопрос

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

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