Кнопки Tkinter, которые требуют, чтобы их команда возвращала значение - PullRequest
0 голосов
/ 28 июня 2018

У меня странный вопрос о tkinter полях ввода:

Я знаю, что могу написать

add_charge = tk.Button(self, text='Add Data', command=function)

и что если функция зависит от параметров, я могу записать ее как

add_charge = tk.Button(self, text='Add Data', command=lambda: function(parameters)

но моя проблема в том, что у меня есть функция, определенная как

def add_charge(x,y,i, data):
    """ x,y are locations if the charge, i is the value of charge, data is existing charges"""
    temp = data.append(Charge(x,y,i)) #Charge is a predefined class which creates the charge object
    return temp

Что мне нужно сделать, это сохранить временную переменную в переменной и заменить уже существующие данные, но я не могу понять, как сохранить значение, возвращаемое функцией после нажатия кнопки. Любая помощь приветствуется!

1 Ответ

0 голосов
/ 28 июня 2018

Благодаря комментаторам я установил обходной путь вместо

def add_charge(x,y,i,data):
    temp = data.append(Charge(x,y,i))
    return temp

Я могу написать

global charge_data
charge_data = []

Тогда позже я могу написать

def add_charge(x,y,i):
   charge_data.append(Charge(x,y,i))

Что позволяет мне эффективно исключить необходимость сохранения результата функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...